[Medium] Interface vs Type Alias
1. Что такое interface и type?
Чем отличаются
interfaceиtypeв TypeScript?
Оба определяют типы, и они пересекаются во многих случаях описания формы объекта.
interface
interface User {
id: number;
name: string;
email?: string;
}
type
type User = {
id: number;
name: string;
email?: string;
};
Для базового моделирования объектов оба подхода допустимы.
2. Ключевые различия (Key Differences)
| Тема | interface | type |
|---|---|---|
| Форма объекта | Отлично | Отлично |
| Псевдоним примитива | Не поддерживается | Поддерживается |
| Union тип | Напрямую не поддерживается | Поддерживается |
| Tuple тип | Напрямую не поддерживается | Поддерживается |
| Слияние объявлений | Поддерживается | Не поддерживается |
| Mapped/conditional типы | Ограничено | Первоклассная поддержка |