> Как реализовать функцию getProperty с типизацией в TypeScript, которая возвращает значение по ключу объекта? (TypeScript)

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

Компании: Иннотех, КИТМЕД, IT-One, RecruitTech, Altenar

Стек: TypeScript

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

В TypeScript реализовать типизированную функцию getProperty можно с использованием обобщённого типа (generic) и оператора keyof. Вот пример:

TYPESCRIPT
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}

Как это работает:

  • T - тип объекта, который передаётся в функцию.

  • K extends keyof T - ключ должен быть допустимым ключом объекта T.

  • Возвращаемый тип T[K] - точный тип значения, соответствующего ключу K.

Пример использования:

TYPESCRIPT
interface User {
name: string;
age: number;
isAdmin: boolean;
}
const user: User = { name: "Анна", age: 30, isAdmin: true };
const userName = getProperty(user, "name"); // тип string
const userAge = getProperty(user, "age"); // тип number
// getProperty(user, "email"); // Ошибка компиляции: "email" не существует в User

Преимущества:

  • Полная типобезопасность: компилятор проверяет и ключ, и возвращаемое значение.

  • Автодополнение ключей в IDE.

  • Исключение ошибок времени выполнения, связанных с несуществующими ключами.

Эта реализация является стандартным паттерном в TypeScript для безопасного доступа к свойствам объектов.

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

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