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

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

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

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

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

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

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

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

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

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

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

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

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

Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo

Optional learning community: https://t.me/GyaanSetuAi