Back to questions
Middle
3
В чём различие между interface и type в TypeScript? Когда использовать каждый из них?
Companies where asked
Электронные офисные системы
Answer from AI
sobes.tech AI
В TypeScript interface и type часто используются для описания форм типов, но между ними есть различия:
- interface предназначен для описания структуры объектов и может быть расширен (extends) или объединён (declaration merging). Это удобно для описания контрактов, особенно в больших кодовых базах или при работе с классами.
- type более универсален: позволяет создавать алиасы для примитивов, объединений, пересечений, кортежей и других типов. Но
typeне поддерживает declaration merging.
Когда использовать:
- Используйте
interface, если нужно описать объектную структуру и планируется расширение или объединение интерфейсов. - Используйте
type, если нужно описать сложные типы, объединения, пересечения или алиасы для примитивов.
Пример:
interface User {
name: string;
age: number;
}
type ID = string | number;
type UserWithID = User & { id: ID };
Таким образом, interface лучше подходит для описания объектов и расширяемых контрактов, а type — для более сложных или составных типов.