首页 文章

编译到NodeJs的Typescript:es6类型问题

提问于
浏览
0

我认为与nodejs一起使用时,我缺少与typescript 2类型系统相关的东西 .


情况如下:

  • 编译一个小的nodejs表示使用typescript编写的服务器到plain es5 ,以便在节点 6.10.0 (tsconfig.json中的 target: es5 )下运行 .

  • 在我的package.json中,我安装了 @types/node7.0.3 )来获取节点的类型信息 .

当使用npm(v3.10.10)安装我的项目然后使用typescript(v2.1.5)编译它时,我得到一堆或与'Iterable'和'Iterator'符号相关的错误(这是es6符号) .

所以从我的理解, @types/node 使用开箱即用的es6类型,假设它们已经可用 .

为了获得es6类型(Iterator,Iterable等),它有两个解决方案:

  • 添加 core-js 包 .
    tsconfig.json中的
  • Target es6 instead of es5 将迫使typescript使用它的lib / lib.es2015..d.ts *定义文件 .

在我看来,第二种方法更好 .

这是将ts编译到节点时的正式方法吗?即:在tsconfig中定位es6?

我怎样才能确定底层节点引擎是否会有效支持这些es6功能?如果我使用的是没有es6支持的旧nodejs版本怎么办?

我很乐意讨论清楚地了解潜在的机制!

谢谢

1 回答

  • 0

    由于node不完全支持所有es6功能,请参阅:node green

    最好定位es5并安装core-js类型:

    npm install @types/core-js
    

相关问题