Назад к вопросам
Senior
4
В чём разница между типами (type) и интерфейсами (interface) в TypeScript?
Компании, где спрашивали
GPTunnel
Ответ от нейросети
sobes.tech AI
В TypeScript и type, и interface используются для описания типов, но между ними есть отличия:
- interface предназначен для описания структуры объектов и поддерживает декларативное расширение (declaration merging). Это удобно для расширения типов в разных частях кода.
- type более универсален: позволяет создавать алиасы для примитивов, объединений, пересечений и других типов, не только для объектов.
Пример:
interface IUser {
name: string;
age: number;
}
type ID = string | number;
type UserWithID = IUser & { id: ID };
Если нужно описать сложные типы с объединениями или пересечениями, лучше использовать type. Для описания объектов и возможности расширения — interface. В последних версиях TypeScript границы между ними стали менее строгими, и выбор часто зависит от стиля и требований проекта.