> Что такое keyof в TypeScript и для чего он используется (TypeScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, Soft_Media_Group, Altenar

Стек: TypeScript

> Пример ответа

keyof - это оператор TypeScript, который возвращает объединение (union) всех ключей (свойств) заданного типа. Проще говоря, он позволяет получить тип, состоящий из названий полей объекта.

Для чего используется:

  1. Типизация доступа к свойствам: Гарантирует, что обращение к свойству объекта происходит только по существующему ключу.

  2. Создание строго типизированных утилит: Например, функция getProperty(obj, key) может быть типизирована так, чтобы возвращаемый тип соответствовал типу значения по указанному ключу.

  3. Построение маппированных типов: В сочетании с in позволяет создавать новые типы на основе существующих (например, Partial<T> или Readonly<T>).

Пример:

TYPESCRIPT
interface User {
name: string;
age: number;
}
// keyof User => "name" | "age"
function getValue<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user: User = { name: "Alice", age: 30 };
const userName: string = getValue(user, "name"); // ✅ OK
// getValue(user, "email"); // ❌ Ошибка: "email" нет в ключах User

Таким образом, keyof обеспечивает типобезопасную работу с ключами объектов, предотвращая ошибки времени выполнения на этапе компиляции.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью