В каких случаях применяются интерфейсы в TypeScript?
Типы и интерфейсы
Интерфейсы в TypeScript применяют для описания формы объектов: данных, props, публичного API классов и библиотек.
Типичные случаи
- Данные и сущности:
interface User { id: string; name: string; email?: string }- Props компонентов и параметры функций-опций.
- Контракты классов через
implements:
interface Logger { log(message: string): void }
class ConsoleLogger implements Logger {
log(message: string) { console.log(message); }
}- Расширение через
extends:interface Admin extends User { role: 'admin' }. - Расширение чужих типов через слияние объявлений — например, добавить поле в
WindowилиRequestиз библиотеки.
Когда лучше type
Объединения ('a' | 'b'), кортежи, типы функций, вычисляемые типы (Pick, mapped, условные) — только через type.
Коротко для собеседования
Интерфейсы — для формы объектов, props, контрактов классов и расширения чужих типов через слияние; объединения и вычисляемые типы — через type.
Подробнее: TypeScript Handbook — Object Types