Будет ли Typescript поддерживать существующие проекты с библиотеками JavaScript?

Я хотел бы начать использовать TypeScript в существующем проекте, но уже есть несколько общих библиотек JavaScript, которые мне нужно использовать в файле TypeScript. Есть ли способ для TypeScript ссылаться на те существующие библиотеки JavaScript с кодом проекта?

Я также попытался портировать существующие библиотеки JavaScript на TypeScript, и я получаю много ошибок времени компиляции. Трудно удалить все ошибки времени компиляции. Почему TypeScript не может просто ссылаться на эти классы JavaScript с параметром "подавить ошибку и предупреждение", например, компилятор Google Dart?

Ответ 2

Здесь два случая:

  • Вы вызываете JavaScript из TypeScript

В этом отношении TypeScript работает так же, как компилятор google закрытия. Все должно быть объявлено до его использования.

Итак, если у вас есть отдельный файл JavaScript, который имеет переменную Foo (класс, модуль, номер и т.д.), вам нужно сообщить об этом TypeScript. В самом основном случае вы можете сделать что-то вроде:

declare var Foo: any;

В противном случае вы получите ошибки компиляции.

Позже вы можете использовать эту декларацию. Для сторонних библиотек существует огромный ресурс, доступный по адресу https://github.com/DefinitelyTyped/DefinitelyTyped

  1. Копирование JavaScript в TypeScript

Еще одна вещь, которая может дать ошибки компиляции, - это копирование вашего JavaScript в ваши файлы TypeScript. Здесь TypeScript поможет вам зафиксировать ошибки типа:

var x = '123';
var y = x.toPrecision(4); // Error x is string not a number