Типы (type) следует использовать для:
typescript
typescript
typescript
typescript
typescript
Интерфейсы (interface) следует использовать для:
typescript
typescript
typescript
typescript
Краткое сравнение:
| Особенность | type | interface |
|---|---|---|
| Союзные типы | Да | Нет |
| Пересекающиеся типы | Да | Нет |
| Примитивные типы/Литералы | Да | Нет |
| Кортежи | Да | Нет |
| Alias'ы типов | Да | Нет |
| Условные типы | Да | Нет |
| Описание объектов | Да | Да |
| Реализация классами | Нет | Да |
| Расширение | Да (с использованием &) | Да (с использованием extends) |
| Декларативное слияние | Нет | Да |
В целом, для описания структуры объектов предпочтительнее использовать interface, так как они лучше подходят для объектно-ориентированного подхода и поддерживают декларативное слияние. Для всего остального, особенно для комбинации и создания новых типов из существующих, type более гибок.