打字稿中的导入与需求

时间:2016-09-23 10:13:00

标签: node.js typescript

在我浏览Angular2文档时,我在here中遇到了以下代码。

的src / polyfills.ts

import 'core-js/es6';
import 'core-js/es7/reflect';
require('zone.js/dist/zone');

if (process.env.ENV === 'production') {
 // Production
} else {
 // Development
Error['stackTraceLimit'] = Infinity;
require('zone.js/dist/long-stack-trace-zone');
}

在上面的代码中,我们可以看到importrequire语句都有。

“core-js”和“zone.js”都是节点模块。

我的问题是;为什么import用于core-js而require用于“zone.js”,是否有任何具体原因?

1 个答案:

答案 0 :(得分:10)

使用TypeScript,如果模块有声明文件(参见Declaration Files in basarat's book),则可以使用import

如果没有声明文件,TypeScript编译器不知道该模块是否存在,因此您需要使用require来代替缺少编译检查的文件。