Я пытаюсь использовать Angular 1.x с TypeScript 1.5.3 и SystemJS. Страница index.html
настроена на System.import('bootstrapper')
, что должно начаться.Использование Angular 1.x с TypeScript 1.5 и SystemJS
bootstrapper.ts
компилируется в bootstrapper.js
и прекрасно работает до тех пор, пока он не использует угловые (т.е. делать только console.log()
работает нормально)
Теперь я хотел бы импортировать и использовать угловые для начальной загрузки его. Я уже сделал jspm install angular
, и я также установил некоторые тиски для угловых, используя tsd
. Типизация указана в верхней части файла bootstrap.ts
.
К сожалению, import angular from 'angular'
не компилируется, я получаю Module "angular" has no default export
. Мои вопросы:
- Почему не
import angular from 'angular'
компилировать? Глядя вangular.d.ts
файл я вижуdeclare module 'angular'{ export = angular; }
, который, если я правильно понимаю, является экспорт по умолчанию из модуля углового переменной (определено выше в файле типизации)declare var angular: angular.IAngularStatic
- Я заметил, что делать
import 'angular'
компилирует и тогда я могу на самом деле ссылкиangular
и, например,angular.module(...)
, но я не думаю, что правильно понимаю, как это работает. Должно лиimport 'angular'
сделать «голый импорт», т. Е. Запустить модуль только для его побочных эффектов? Если это так, означает ли это, что этот импорт фактически регистрируетangular
в глобальной области?
Я уверен, что неправильно понимаю, как файлы определения типов модулей/типов работают в Typcript, заранее заблаговременно объяснение.
Просто обратите внимание, что 'import angular' не пытается импортировать что-то с именем' angleular', он пытался импортировать что-то с именем 'default' в привязку, называемую' угловой'. – loganfsmyth
@loganfsmyth Спасибо, перепутали его с фигурными скобками, спасибо – thoughtrepo
Не уверен, что я понял. Вы говорите, что в 'export = angular'« угловой »относится к модулю, определенному далее в файле d.ts, как' define module angular' вместо объявленного выше variabile как 'declare var angle: angular.IAngularStatic'? Или это относится к переменной, но переменная имеет тип интерфейса, который каким-то образом экспортирует этот интерфейс в качестве пространства имен? Если бы это было так, я думаю, 'declare var x' фактически не создает переменную, это просто псевдоним для' module.interface'? –