【发布时间】:2017-08-03 07:54:09
【问题描述】:
我认为我在与 nodejs 一起使用时缺少 typescript 2 类型系统的一些东西。
情况如下:
- 将一个用 typescript 编写的小型 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”和“Iterator”符号(它们是 es6 符号)相关的错误。
据我了解,@types/node 使用开箱即用的 es6 类型,假设它们已经可用。
为了拥有 es6 类型(Iterator、Iterable 等),有两种解决方案:
- 添加 core-js 包。
- 在 tsconfig.json 中以 es6 而不是 es5 为目标,这将强制 typescript 使用它的 lib/lib.es2015..d.ts* 定义文件。
在我看来,第二种方法更好。
这是将 ts 编译到 node 时的官方方式吗? 即:在 tsconfig 中以 es6 为目标?
我如何确定底层节点引擎将有效地支持那些 es6 特性?如果我使用的是不支持 es6 的旧 nodejs 版本怎么办?
我很乐意讨论以清楚地了解底层机制!
谢谢
【问题讨论】:
标签: node.js typescript npm