Ответ
Плюсы:
- Чистый и лаконичный код, особенно для простых типов
- Избегаем дублирования кода (type можно переиспользовать)
- Более гибкие возможности (union, intersection типы)
- Лучше работает с условными типами и mapped types
Минусы:
- Нет возможности расширения (declaration merging) как у interface
- Менее читаемо для сложных объектов/классов
- Некоторые IDE хуже автодополняют type
- В ранних версиях TS были проблемы с производительностью
Пример:
type User = {
name: string;
age: number;
};
type Admin = User & { role: string }; // intersection
type UserOrAdmin = User | Admin; // union