33 / 58
Чем структурная типизация отличается от номинальной (structural vs nominal typing) в TypeScript?
TypeScript использует структурную типизацию (structural typing): два типа совместимы, если у них одинаковая структура (набор полей и методов), а не одинаковое имя. В отличие от Java/C#, где class Dog и class Cat с одинаковыми полями -- разные типы (номинальная типизация), в TypeScript они взаимозаменяемы. Для имитации номинальных типов используют branded types.