在我浏览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');
}
在上面的代码中,我们可以看到import
和require
语句都有。
“core-js”和“zone.js”都是节点模块。
我的问题是;为什么import
用于core-js而require
用于“zone.js”,是否有任何具体原因?
答案 0 :(得分:10)
使用TypeScript,如果模块有声明文件(参见Declaration Files in basarat's book),则可以使用import
。
如果没有声明文件,TypeScript编译器不知道该模块是否存在,因此您需要使用require
来代替缺少编译检查的文件。