Back to questions
Middle
1
Когда ты сам будешь использовать interface, а когда type? Почему предпочтёшь type?
Companies where asked
СберInfra.cloud
Answer from AI
sobes.tech AI
В TypeScript interface и type часто используются для описания типов объектов, но есть отличия и предпочтения.
Когда использовать interface:
- Для описания структуры объектов и классов.
- Когда нужно расширять типы через
extendsили декларативное слияние интерфейсов. - Если планируется использовать декларативное слияние интерфейсов (например, для расширения типов из библиотек).
Когда использовать type:
- Для объединения типов (
union), пересечения (intersection), примитивов, кортежей и других сложных типов. - Когда нужна большая гибкость в описании типов.
- Для алиасов примитивов и сложных выражений типов.
Почему предпочитаю type:
typeболее универсален и позволяет описывать не только объекты, но и объединения, пересечения, примитивы.- Нет ограничений на повторное объявление, что снижает риск неожиданных слияний.
- Часто удобнее для сложных типов и композиции.
Пример использования type для объединения и описания объекта:
type User = {
id: number;
name: string;
};
type Admin = User & {
role: 'admin';
};
type Guest = {
role: 'guest';
};
type Person = Admin | Guest;
В то время как interface больше подходит для описания структуры и расширения:
interface User {
id: number;
name: string;
}
interface Admin extends User {
role: 'admin';
}