Ответ
TypeScript — это надмножество JavaScript, поэтому его паттерны часто связаны с особенностями JS, такими как прототипное наследование и динамическая типизация. Основные отличия:
- Декораторы — уникальная фича TS (хоть и на стадии proposal в JS), часто используется в Angular.
@Component({...})
class MyComponent {}
-
Интерфейсы vs Классы — в TS интерфейсы существуют только на этапе компиляции, в отличие от Java/C#.
-
Structural Typing — типы проверяются по структуре, а не по явному наследованию (как в Java).
interface Point { x: number; y: number }
function printPoint(p: Point) {...}
printPoint({ x: 1, y: 2 }); // OK, структура совпадает
-
Миксины — популярны из-за гибкости JS, реализуются через утиную типизацию.
-
Utility Types (
Partial,Pickи др.) — специфичны для TS, помогают работать с типами динамически.