> Как реализовать динамически настраиваемое поле в интерфейсе TypeScript (TypeScript)

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

Компании: ЛОЦИЯ

Стек: TypeScript

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

Для реализации динамически настраиваемого поля в TypeScript можно использовать индексные сигнатуры (index signatures) или утилитарные типы, такие как Record<K, V>. Вот пример с индексной сигнатурой:

TYPESCRIPT
interface DynamicField {
[key: string]: string | number | boolean;
}
// Использование
const config: DynamicField = {
theme: 'dark',
fontSize: 14,
showNotifications: true,
};

Если нужно ограничить ключи определённым набором, используйте Record с union-типом:

TYPESCRIPT
type AllowedKeys = 'color' | 'size' | 'visible';
type Config = Record<AllowedKeys, string | number | boolean>;
const settings: Config = {
color: 'red',
size: 42,
visible: true,
};

Для более гибкого контроля типов значений можно применить условные типы или дженерики:

TYPESCRIPT
interface DynamicConfig<T extends string> {
[key: T]: unknown;
}
function createField<K extends string>(key: K, value: unknown): DynamicConfig<K> {
return { [key]: value };
}

Такой подход обеспечивает типобезопасность при добавлении произвольных полей.

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

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