当我浏览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”都是节点模块.
我的问题是;为什么导入用于core-js并且需要“zone.js”,这有什么特别的原因吗?
解决方法
使用TypeScript,如果模块有声明文件(参见
Declaration Files in basarat’s book),则可以使用导入.
如果没有声明文件,则TypeScript编译器不知道该模块是否存在,因此您需要使用缺少编译检查的require.