> Как реализовать динамически настраиваемое поле в интерфейсе TypeScript (TypeScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: ЛОЦИЯ
Стек: TypeScript
> Пример ответа
Для реализации динамически настраиваемого поля в TypeScript можно использовать индексные сигнатуры (index signatures) или утилитарные типы, такие как Record<K, V>. Вот пример с индексной сигнатурой:
TYPESCRIPTinterface DynamicField {[key: string]: string | number | boolean;}// Использованиеconst config: DynamicField = {theme: 'dark',fontSize: 14,showNotifications: true,};
Если нужно ограничить ключи определённым набором, используйте Record с union-типом:
TYPESCRIPTtype AllowedKeys = 'color' | 'size' | 'visible';type Config = Record<AllowedKeys, string | number | boolean>;const settings: Config = {color: 'red',size: 42,visible: true,};
Для более гибкого контроля типов значений можно применить условные типы или дженерики:
TYPESCRIPTinterface DynamicConfig<T extends string> {[key: T]: unknown;}function createField<K extends string>(key: K, value: unknown): DynamicConfig<K> {return { [key]: value };}
Такой подход обеспечивает типобезопасность при добавлении произвольных полей.
> Похожие задачи по frontend
Почему проверка типа через instanceof не работает с интерфейсами в TypeScript
Какие сущности TypeScript остаются в рантайме после транспиляции
Какие модификаторы классов есть в TypeScript
Какова роль юнит тестов при использовании TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью