【发布时间】:2015-11-27 00:05:20
【问题描述】:
我正在尝试将 Angular 1.x 与 TypeScript 1.5.3 和 SystemJS 一起使用。 index.html 页面设置为 System.import('bootstrapper') 应该可以启动。
bootstrapper.ts 被编译为 bootstrapper.js 并且只要它不使用 angular 就可以正常工作(即只使用 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并执行例如angular.module(...),但我认为我没有正确理解它是如何工作的。import 'angular'不应该做一个“裸导入”,即只为了它的副作用而运行一个模块吗?如果是这样,那是否意味着这个导入实际上在全局范围内注册了angular?
我很确定我没有正确理解模块/类型定义文件在 Typescript 中的工作方式,提前感谢您的解释。
【问题讨论】:
标签: javascript angularjs typescript ecmascript-6 jspm