导入与打字稿中的要求

当我正在阅读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'); } 

在上面的代码中,我们可以看到有两个import语句和require语句。

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

我的问题是 为什么import用于core-js, require “zone.js”,请问有什么具体的原因吗?

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

如果没有声明文件,TypeScript编译器不知道这个模块是否存在,所以你需要使用require而不是编译检查。