Встречается на собеседованиях • сегодня
Когда нельзя использовать interface в TypeScript
Interfaces в TypeScript не стоит использовать, когда:
1. **Нужны примитивы или union-типы**
Interfaces не поддерживают примитивы (`string`, `number`) или union-типы (`string | number`). Вместо них используйте `type`.
```typescript
type ID = string | number; // Работает
interface ID { value: string | number } // Ошибка
```
2. **Требуется расширение примитивов**
Interfaces не могут расширять примитивы (`string`, `number`), только объекты.
3. **Использование mapped или conditional типов**
`type` поддерживает сложные преобразования, а `interface` — нет.
```typescript
type Readonly = { readonly [K in keyof T]: T[K] }; // Работает
```
4. **Объединение типов через `&` или `|`**
Interfaces не поддерживают операторы объединения/пересечения напрямую.
```typescript
type A = { a: string };
type B = { b: number };
type C = A & B; // Корректно
```
Interfaces лучше для объектов и классов, когда важна декларативная расширяемость.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы