JS Migration Guide
Припускаючи:
ви знаєте JavaScript.
ви знаєте шаблони та інструменти створення (наприклад, webpack), які використовуються в проекті.
Відкинувши це припущення, загалом процес складається з таких кроків:
Додайте
tsconfig.json
.Змініть розширення файлу вихідного коду з
.js
на.ts
. Почніть suppressing помилки за допомогоюany
.Напишіть новий код на TypeScript і якомога менше використовуйте
any
.Поверніться до старого коду та почніть додавати анотації типів і виправляйте виявлені помилки.
Використовуйте визначення навколишнього середовища для стороннього коду JavaScript.
Давайте обговоримо деякі з цих пунктів далі.
Зауважте, що весь JavaScript є valid TypeScript. Тобто якщо ви надасте компілятору TypeScript деякий JavaScript -> JavaScript, створений компілятором TypeScript, поводитиметься точно так само, як оригінальний JavaScript. Це означає, що зміна розширення з .js
на .ts
не вплине негативно на вашу кодову базу.
Suppressing Errors
TypeScript негайно почне перевірку типу вашого коду, і ваш вихідний код JavaScript може бути не таким охайним, як ви думали, і, отже, ви отримуєте діагностичні помилки. Багато з цих помилок можна придушити за допомогою any
, наприклад:
Незважаючи на те, що error is valid (і в більшості випадків отримана інформація буде кращою, ніж те, що уявляли оригінальні автори різних частин бази коду), ви, ймовірно, зосередитеся на написанні нового коду на TypeScript, поступово оновлюючи стару кодову базу. Тут ви можете придушити цю помилку за допомогою твердження типу, як показано нижче:
В інших місцях ви можете позначити щось як any
, наприклад:
Suppressed:
Примітка: придушення помилок небезпечно, але це дозволяє вам помічати помилки у вашому new коді TypeScript. Ви можете залишати коментарі
// TODO:
під час роботи.**
Third Party JavaScript
Ви можете змінити свій JavaScript на TypeScript, але ви не можете змінити весь світ на використання TypeScript. Ось тут і з’являється підтримка навколишнього визначення TypeScript. На початку ми рекомендуємо вам створити vendor.d.ts
(розширення .d.ts
вказує на те, що це declaration file) і почати додавати брудні речі до нього. Крім того, можна створити спеціальний файл для бібліотеки, наприклад. jquery.d.ts
для jquery.
Розглянемо випадок jquery
, ви можете легко створити trivial визначення для нього:
Іноді ви можете додати явну анотацію до чогось (наприклад, JQuery
), і вам потрібно щось у type declaration space. Ви можете зробити це досить легко, використовуючи ключове слово type
:
Це спрощує шлях оновлення в майбутньому.
Third Party NPM modules
А потім ви можете імпортувати його у свій файл за потреби:
External non js resources
Тепер люди можуть імпортувати * як foo з "./some/file.css";
Так само, якщо ви використовуєте шаблони html (наприклад, angular), ви можете:
More
Last updated