> Что такое интерфейсы и типы в TypeScript, для чего они нужны и чем отличаются? (TypeScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Инрэко, Точка, Kvando Technologies, Soft_Media_Group, ООО Премиум ИТ Солюшен, Kodix, Aston, The Tribe, ЛОЦИЯ, Swetec, DigitalSail, EdenAI, TYMY
Стек: TypeScript
> Пример ответа
Интерфейсы (interface) и типы (type) в TypeScript - это инструменты для описания формы данных: какие свойства и методы есть у объекта, их типы и обязательность. Они нужны для статической типизации: компилятор проверяет, что код использует данные корректно, что предотвращает ошибки на этапе разработки.
Основные отличия:
-
Интерфейсы предназначены в первую очередь для описания структуры объектов и классов. Их можно расширять (extends) и объединять (declaration merging - если объявить два интерфейса с одним именем, они сольются в один).
-
Типы (type alias) более гибки: могут описывать не только объекты, но и примитивы, объединения (union), пересечения (intersection), кортежи и т.д. Их нельзя переобъявить (declaration merging не работает), но можно создавать сложные композиции через
&и|.
Пример:
TYPESCRIPT// Интерфейсinterface User {name: string;age: number;}// Типtype Status = 'active' | 'inactive';type Admin = User & { role: 'admin' }; // пересечение
Когда что использовать:
-
Интерфейсы - для API, классов, публичных контрактов (лучше расширяются).
-
Типы - для сложных комбинаций, условных типов, примитивов.
На практике разница часто стирается, но интерфейсы предпочтительнее для объектов из-за лучшей производительности компилятора и читаемости ошибок.
> Похожие задачи по frontend
Можно ли создать константу с несуществующим типом в TypeScript?
Что такое TypeScript
Как сделать функцию getProperty с типизацией и проверкой ключей в TypeScript?
Что такое типы any и unknown в TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью