将Typescript编译为NodeJs:es6类型问题

时间:2017-03-13 10:22:58

标签: node.js typescript npm

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

情况如下:

  • 将使用打字稿编写的小型nodejs express服务器编译为纯 es5 ,以便在节点 6.10.0 下运行(目标:es5 在tsconfig.json)。
  • 在我的package.json中,我安装了 @ types / node 7.0.3 )以获取节点的类型信息。

使用npm(v3.10.10)安装我的项目,然后使用typescript(v2.1.5)进行编译时,我得到一堆或与“#Iterable”相关的错误。和'迭代器'符号,(这是es6符号)。

根据我的理解, @ types / node 使用开箱即用的es6类型,假设它们已经可用。

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

  1. 添加 core-js 包。
  2. 在tsconfig.json中定位es6而不是es5 ,这会强制打字稿使用 lib / lib.es2015。 .d.ts *定义文件
  3. 在我看来,第二种方法更好。

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

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

    我很高兴讨论清楚地了解潜在的机制!

    谢谢

1 个答案:

答案 0 :(得分:0)

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

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

curl -H "Fiware-service: service" -H "Fiware-servicepath: /service" http://172.17.0.1:1026/v2/entities/entity1:Type/attrs/t/value