打字稿中的导入与需求

ref*_*tor 7 node.js typescript

当我浏览Angular2文档时,我在这里遇到了下面的代码.

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');
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我们可以看到有两个importrequire语句.

"core-js"和"zone.js"都是节点模块.

我的问题是; 为什么import用于core-js和require"zone.js",有什么特别的原因吗?

Jam*_*ger 13

使用TypeScript,import如果有模块的声明文件(请参阅basarat的书中的声明文件),则可以使用.

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

  • zone.js现在包含一个.d.ts文件,可以使用`import`导入 (3认同)