Middle
In TypeScript kun je types declareren met behulp van het sleutelwoord interface en met behulp van het sleutelwoord type. Kun je kort uitleggen wat het verschil is?
sobes.tech AI
Antwoord van 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.