Какой тип вернёт универсальная функция чтения поля объекта
function getField<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
type Product = { title: string; price: number; inStock: boolean };
declare const product: Product;
const a = getField(product, "price");
const b = getField(product, "discount");
Что скажет компилятор про a и b?
- a имеет тип number, строка с b — ошибка компиляции
- a и b имеют тип string | number | boolean
- a имеет тип number, b — undefined без ошибки
- Обе строки компилируются, типы a и b — any
