Назад к вопросам
Middle
2
В TypeScript можно объявлять типы с помощью ключевого слова interface и с помощью ключевого слова type. Можешь кратко сказать, в чём разница?
Компании, где спрашивали
СберInfra.cloud
Ответ от нейросети
sobes.tech AI
В TypeScript interface и type часто используются для описания типов объектов, но между ними есть отличия:
-
interface предназначен для описания структуры объектов и поддерживает декларативное расширение (declaration merging). Это значит, что можно объявить один и тот же интерфейс несколько раз, и TypeScript объединит их.
-
type — это более общий инструмент, который позволяет создавать алиасы для любых типов: примитивов, объединений, пересечений, кортежей и т.д. Однако
typeне поддерживает декларативное расширение.
Пример:
interface User {
name: string;
}
interface User {
age: number;
}
// Теперь User имеет оба свойства: name и age
// С type так сделать нельзя:
type UserType = {
name: string;
};
// type UserType = {
// age: number;
// }; // Ошибка: Duplicate identifier 'UserType'
В целом, если нужно описать структуру объекта и планируется расширение, лучше использовать interface. Если нужен более сложный тип (например, объединение или кортеж), или алиас, то type.