AMD RequireJS @types TypeScript 2 Visual Studio 2015 кошмар
Мне поручено обновить наш проект angularJs до TypeScript 2
В настоящее время мы используем requirejs (AMD) для подбора библиотек, а затем используем
import 'angular';
import 'lodash';
насколько я понимаю, это синтаксис загрузки модуля ES6. Мы объявляем основной модуль приложения и импортируем в него библиотеки, а затем импортируем модуль приложения.
import 'Application';
который также называется requirejs, мы автоматически получаем весь список импортируемых библиотек Application по мере его импорта.
Я фактически обновил проект УСПЕШНО до TypeScript 2!!!
Однако проблема возникает, когда я пытаюсь использовать @types для включения файлов декларации TypeScript.
Там нет ни одного полного руководства о том, как сделать работу!
****** Вопрос! ******
Когда я попытался использовать @types/lodash, я потерял intellisense для _ (lodash) во всех существующих файлах.
Когда я пытаюсь
import * as _ from 'lodash';
Я тогда столкнулся с другой ошибкой:
Build:Module augmentation cannot introduce new names in the top level scope.
Насколько я понимаю, файлы.d.ts экспортируют модули UMD. Но как я могу ссылаться на @types в моей Visual Studio 2015?
Пожалуйста помоги! И спасибо.
0 ответов
requireJS НЕ обрабатывает UMD (универсальную загрузку модуля) изящно. Все библиотеки @types являются библиотеками UMD.
Нам пришлось перейти на WebPack для правильной загрузки библиотек @types.
Что наиболее важно, мы сделали это как шаг ближе к обновлению до Angular 5, к которому не может получить доступ requireJS AMD, так как он был написан на TypeScript как UMD с самого начала.