我正在尝试将 Angular 1.x 与 TypeScript 1.5.3 和 SystemJS 一起使用。该index.html
页面已设置为System.import('bootstrapper')
应该启动的内容。
bootstrapper.ts
bootstrapper.js
只要它不使用角度,就可以编译并正常工作(即只做一个console.log()
工作正常)
现在,我想导入并使用 angular 来引导它。我已经完成了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
并执行 egangular.module(...)
,但我认为我没有正确理解它是如何工作的。不应该import 'angular'
做一个“裸导入”,即只为它的副作用运行一个模块?如果是这样,这是否意味着这个导入实际上是angular
在全局范围内注册的?
我很确定我不能正确理解模块/类型定义文件在 Typescript 中是如何工作的,在此先感谢您的解释。