Middle
TypeScript-də, interface açar sözü və type açar sözü ilə tiplər elan etmək mümkündür. Qısa şəkildə fərqi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
В 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.