Продвинутый Typescript
Теория: Классы как типы
Полный доступ к материалам
Классы в TypeScript являются одновременно значением и типом данных. Второе особенно важно в контексте типизации функций и методов, что мы и изучим в этом уроке.
Рассмотрим следующий пример:
Здесь функция isEqual() принимает два аргумента типа Point. И хоть мы используем в качестве типа класс Point, но передавать в функции мы можем любые объекты с полями x и y:
Такое поведение обусловлено структурной типизацией. При сравнении типов TypeScript сравнивает их структуру, а не имена. На практике это упрощает работу с внешними библиотеками и заглушками для тестирования.
TypeScript будет явно требовать экземпляр класса, если у него есть приватные поля:





