Вступить в клуб →
средняявопросTypeScript: дженерики и контракты с API

Какой тип вернёт универсальная функция чтения поля объекта

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

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела