type Programmer = {
name: string;
knownFor: string[];
};
Интерфейс - это группа связанных свойств и методов, которые описывают объект, но не обеспечивают их реализацию или инициализацию.
Класс - это шаблон для создания объектов и инкапсулирует функциональность, которую должен иметь объект. Класс определяет состояние и поведение, которыми обладает объект.
Discriminated union - это шаблон, который указывает компилятору все возможные типы, которые может представлять вновь созданный тип.
type HouseCoffee = {
kind: "house";
ouncesDrip: number;
};
type Latte = {
kind: "latte";
ouncesEspresso: number;
milkToEspresso: 4;
};
type Cappuccino = {
kind: "cappuccino";
ouncesEspresso: number;
milkToEspresso: 2;
};
type Coffee = HouseCoffee | Latte | Cappuccino;
Тип Coffee
- пример discriminated union.
Generics - это инструмент, который позволяет создавать компоненты, которые можно переиспользовать. Он создает компонент, который может работать с различными типами данных. Это позволяет пользователям использовать свои собственные типы. Generics гарантируют, что программа масштабируемой в долгосрочной перспективе.
function identity<T>(arg: T): T {
return arg;
}
let output1 = identity<string>("myString");
let output2 = identity<number>(100);
Источники: