Назад к вопросам
МТС Банк
Middle
2
Есть ли разница между type и interface в TypeScript?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В TypeScript type и interface имеют сходства, но есть ключевые отличия:
-
Расширяемость:
interfaceможно расширять (extends) и дополнять (declaration merging).typeнельзя дополнять после объявления, но можно создавать новые типы на основе существующих через объединения и пересечения.
-
Возможности:
typeможет описывать не только объекты, но и примитивы, объединения, кортежи и т.д.interfaceпредназначен только для описания структур объектов и классов.
-
Использование:
interfaceчасто предпочтительнее для описания публичных API и объектов, так как поддерживает декларативное расширение.typeудобен для сложных типов, объединений и алиасов.
Пример:
interface User {
name: string;
}
interface User {
age: number; // интерфейсы объединятся
}
const user: User = { name: "Alice", age: 30 };
// type не поддерживает объединение
type ID = string | number;