TypeScript переміг. Ось що ми насправді отримали.

Ніхто вже не сперечається щодо використання TypeScript. Нові проєкти використовують його за замовчуванням. Дебати закінчилися.

Справжня цінність полягає не лише у виявленні друкарських помилок. Усе набагато глибше.

Сигнатура функції слугує документацією. Вона ніколи не застаріває. Якщо код змінюється, компілятор перериває збірку.

Погляньте на цю функцію:

function scheduleReminder(
  userId: string,
  at: Date,
  channel: "email" | "push" | "sms",
): Promise<ReminderId>;

Ви точно знаєте, як це викликати. Ви знаєте, що потрібно функції та що вона повертає. Ви знаєте, що канал має бути одним із трьох конкретних рядків.

Якщо пізніше ви додасте опцію "slack", компілятор змусить вас оновити кожну частину вашого коду. Коментар же просто застаріє і введе вас в оману.

У нетипізованому коді перейменування поля викликає страх. Ви шукаєте рядки та сподіваєтеся на краще. У TypeScript ви змінюєте тип. Компілятор надає вам список справ із усім, що зламалося. Рефакторинг стає безпечним.

Типи також допомагають у роботі з ШІ.

Модель ШІ лише припускає структуру коду в JavaScript. У TypeScript тип є специфікацією. ШІ знає, що дозволено. Помилки з'являються у вигляді помилок компіляції, а не призводять до збоїв у продакшені.

Типи діють як захисні бар'єри. Вони дозволяють вам впевнено використовувати код, згенерований ШІ, замість того, щоб перевіряти кожен рядок вручну.

Пишіть кращі типи за допомогою цих правил:

• Використовуйте об'єднання (unions) замість багатьох булевих значень. Статус на кшталт "loading" | "error" | "ready" кращий за три окремі прапорці. • Давайте назви вашим доменним типам. Використовуйте type Cents = number, щоб виразити намір. • Уникайте any. Замість цього використовуйте unknown та звужуйте тип. • Дозволяйте працювати виведенню типів (inference). Анотуйте межі, такі як сигнатури функцій, але дозволяйте решті типів визначатися автоматично.

TypeScript перетворив кодові бази на набори суворих контрактів. Ці контракти забезпечують безстрашний рефакторинг та надійну допомогу ШІ.

Ми почали використовувати типи, щоб зупинити появу багів. Ми продовжуємо їх використовувати, тому що вони є фундаментом для всього іншого.

Джерело: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo