Какие парадигмы в TypeScript важны на практике и как их применять?
Основы TypeScript
TypeScript мультипарадигменный: поддерживает объектно-ориентированный, функциональный и процедурный стиль.
ООП
Классы, наследование, интерфейсы, модификаторы доступа (private, protected, readonly), абстрактные классы:
abstract class Shape { abstract area(): number }
class Circle extends Shape {
constructor(private r: number) { super(); }
area() { return Math.PI * this.r ** 2; }
}Применяют в сервисах, SDK, Angular, сложных доменных моделях.
Функциональный стиль
Чистые функции, неизменяемость (readonly, as const), композиция, дискриминированные объединения вместо иерархий:
type Shape = { kind: 'circle'; r: number } | { kind: 'square'; a: number };
const area = (s: Shape) => (s.kind === 'circle' ? Math.PI * s.r ** 2 : s.a ** 2);Типичен для React, Redux, утилит.
Процедурный
Простые функции и модули — скрипты, конфигурация, небольшие утилиты.
Коротко для собеседования
TS поддерживает ООП (классы, интерфейсы, модификаторы), функциональный стиль (чистые функции, объединения, readonly) и процедурный; на фронтенде чаще функциональный.
Подробнее: TypeScript Handbook — Classes