问题
在TypeScript中默认引用了没有export default的npm模块(使用了commonJS规范的第三方库,使用export = 导出,详见文档)
1 | import moment from 'moment'; |
并照如下方式使用
1 | const now = moment(); |
转换的js语法为如下
1 | var now = moment_1.default(); |
由于全局变量 moment
中不存在 default
属性,报错
原因
1 | import moment from 'moment'; |
此行代码意味着从模块中导入默认导出并将其绑定到本地名称
TypeScript按要求执行,并访问模块对象的默认属性
但使用commonJs
导出的包不存在default属性,因此报错
解决方法
针对使用commonJs导出的包,使用如下方式导入
1 | import * as moment from 'moment'; |