Отличия type и interface в TypeScript
В TypeScript существуют два способа описания типов: type и interface.
Interface
- interface используется для описания структуры объектов и классов, а также для расширения других интерфейсов.
Пример использования interface:
interface Person {
name: string;
age: number;
}
interface Employee extends Person {
position: string;
}
const employee: Employee = {
name: "John",
age: 30,
position: "Developer"
};
interface
позволяет использовать ключевое слово extends для расширения других интерфейсов. Это делает его удобным для работы с объектно-ориентированным подходом.
Type
- type более универсален и может использоваться не только для объектов, но и для других типов данных, таких как примитивы, объединения, пересечения типов и другие.
Пример использования type:
type Person = {
name: string;
age: number;
};
type Employee = Person & {
position: string;
};
const employee: Employee = {
name: "John",
age: 30,
position: "Developer"
};
Когда использовать interface или type?
interface
стоит использовать, когда нужно работать с объектами, особенно если вам нужно расширять или изменять их с помощью extends или реализовывать в классах с помощью implements.type
стоит использовать, когда вам нужно работать с универсальными типами, такими как объединение, пересечение, кортежи и примитивы.