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

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

Початкова ідея полягала в тому, щоб ловити друкарські помилки до того, як вони призведуть до збою вашого застосунку. Але це не справжня перевага. Справжня цінність полягає в чомусь набагато глибшому.

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

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

Типи також допомагають використовувати ШІ.

Інструмент ШІ, який намагається вгадати код у JavaScript, є небезпечним. Він припускається помилок, що призводять до збоїв у продакшені. У TypeScript тип виступає як специфікація. ШІ знає, що дозволено. Якщо ШІ помиляється, компілятор миттєво це виявляє. Типи перетворюють «ймовірно правильний код» на «правильний код».

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

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

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

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

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

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