Миграция с JavaScript
Требуемые навыки:
Вы знаете JavaScript;
Вы знаете, как использовать общие шаблоны и инструменты сборки в вашем проекте (например
webpack
).
С учетом приведенных выше пунктов миграция с JavaScript обычно включает в себя следующие шаги:
Добавить файл
tsconfig.json
;Измените расширение файла с
.js
на.ts
и начните использоватьany
, чтобы уменьшить количество ошибок;Начните писать код на TypeScript, чтобы минимизировать использование
any
;Вернитесь к старому коду, начните добавлять аннотации типов и исправлять выявленные ошибки;
Используйте декларацию окружения для стороннего кода JavaScript.
Давайте обсудим некоторые из них дальше.
Помните, что весь JavaScript это тот же TypeScript только без типов. Это означает, что если вы позволите компилятору TypeScript компилировать код JavaScript в JavaScript, скомпилированный результат будет точно таким же, как и исходный код JavaScript. Другими словами, изменение расширения файла с .js
на .ts
не будет иметь негативных последствий.
Уменьшение ошибок
TypeScript немедленно проверит ваш код. Ваш код JavaScript может быть не таким аккуратным, как вы думаете, поэтому вы получите несколько сообщений об ошибках. Вы можете использовать любой тип для разрешения большинства из них:
Даже если ошибка допустима (и в большинстве случаев выведенная информация будет лучше, чем предполагали первоначальные авторы различных частей кодовых баз), вы, вероятно, сосредоточитесь на написании нового кода на TypeScript при постепенном обновлении старой кодовой базы. Здесь вы можете устранить эту ошибку с помощью утверждения типа, как показано ниже:
С других местах, вы можете использовать any
в качестве аннотации типа:
Подавить эту ошибку:
Использование такого подхода для подавления сообщений об ошибках опасно, но позволяет обратить ваше внимание на новые ошибки кода TypeScript. Прежде чем двигаться дальше, лучше оставить комментарий // TODO
Сторонний код
Вы можете изменить свой код JavaScript на код TypeScript, но вы не можете заставить мир использовать TypeScript. Здесь поддерживаются объявления среды TypeScript. Мы рекомендуем вам создать файл vendor.d.ts
в качестве отправной точки (расширение файла .d.ts
указывает, что этот файл является файлом декларации), а затем мы можем что-то добавить в файл. В качестве альтернативы вы можете создать файл объявления для конкретной библиотеки, например, файл jquery.d.ts
для jquery
.
Рассмотрим вариант использования jquery
, вы можете создать его определение очень просто и быстро:
Иногда вам может потребоваться дать четкое определение некоторым переменным (например jquery
), и вы будете использовать его в пространстве объявления типов. Вы можете сделать это быстро с помощью ключевого слова type
:
Это обеспечит вам более простой путь обновления в будущем.
Сторонние модули NPM
Затем вы можете импортировать его при необходимости:
Дополнительные не-JavaScript файлы
В TypeScript вы даже можете разрешить импортировать любой файл, например, файл .css
(если вы используете загрузчик стилей в webpack
или модуль css), вы просто добавляете следующий код в global.d.ts
:
Теперь вы можете использовать import * as foo from './some/file.css'
.
Аналогично, если вы хотите использовать HTML-шаблоны (например, angular
), вы можете:
Last updated
Was this helpful?