AMD RequireJS @types TypeScript 2 Visual Studio 2015 кошмар

Мне поставлена ​​задача обновить наш проект angularJs до TypeScript 2.

В настоящее время мы используем requirejs (AMD) для шимирования библиотек, а затем используем

import 'angular'; import 'lodash';

насколько я понимаю, это синтаксис загрузки модуля ES6. Мы объявляем основной модуль приложения и импортируем в него библиотеки, затем, когда мы импортируем модуль приложения

import 'Application';

который также маскируется requirejs, мы автоматически получаем весь список импортированных библиотек приложения по мере его импорта.


Я действительно УСПЕШНО обновил проект до 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?

Пожалуйста помоги! И спасибо.


person Samer    schedule 22.03.2017    source источник
comment
Извините за ваш опыт, но я просто счастлив, зная, что я не единственный человек, который сходит с ума (почти буквально в моем случае, из-за недосыпа и полных дней, которые я потратил на это!). Я чувствую, что это будет действительно круто, когда это сработает!   -  person Adam Plocher    schedule 27.03.2017


Ответы (1)


requireJS НЕ обрабатывает UMD (универсальную загрузку модулей) изящно. Все библиотеки @types являются библиотеками UMD.

Нам пришлось перейти на WebPack, чтобы библиотеки @types загружались правильно.

Самое главное, мы сделали это как шаг к обновлению до Angular 5, к которому нельзя получить доступ с помощью requireJS AMD, поскольку он с самого начала был написан на TypeScript как UMD.

person Samer    schedule 28.03.2019