Какие знаешь парадигмы в TypeScript

«Какие знаешь парадигмы в TypeScript» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

TypeScript поддерживает несколько парадигм программирования:

  1. ООП (Объектно-ориентированное)
    Классы, интерфейсы, наследование, инкапсуляция, полиморфизм.
    class Animal {
      constructor(public name: string) {}
      move(distance: number) {
        console.log(`${this.name} moved ${distance}m`);
      }
    }
  1. Функциональное программирование
    Чистые функции, иммутабельность, функции высшего порядка.
    const add = (a: number, b: number): number => a + b;
    const numbers = [1, 2, 3].map(x => x * 2);
  1. Процедурное программирование
    Последовательные операции, функции без состояния.

  2. Реактивное программирование
    Работа с потоками данных (RxJS).

  3. Generic-программирование
    Обобщённые типы для создания гибких компонентов.

    function identity<T>(arg: T): T {
      return arg;
    }