我正在迁移以在nodejs / koa项目中使用typescript。我发现我必须将.tsconfig更改为目标es6,否则会抱怨:生成器仅在定位ECMAScript 6或更高版本时可用。
// index.ts
let koa = require('koa');
let app = koa();
export {app};
app.use(function *(){
return yield this.body = 'Hello World';
});
app.listen(3090);
// .tsconfig
{
"compilerOptions": {
"module": "commonjs",
"target": "es5", // I have to switch to es6 to pass
"noImplicitAny": false,
"sourceMap": true,
"outDir": "./dist"
},
"exclude": [
"node_modules",
"dist"
]
}
虽然它适用于es6,但我担心如果nodejs运行时完全覆盖es6功能(我被告知覆盖百分比是96%的东西)。我想知道为什么我不能针对es5,因为打字稿是一个转换器,它应该能够编译生成器承诺像babel一样吗?
顺便说一句,我已经尝试过安装es6-shim而没有幸运。
答案 0 :(得分:2)
我想知道为什么我不能定位es5,因为typescript是一个转换器,它应该能够编译生成器以承诺像babel一样
他们正在重写TypeScript的 emit 部分,以便像babel那样使用plugins
:https://github.com/Microsoft/TypeScript/issues/5595实际上只是尚未完全编写的代码。< / p>
我担心nodejs运行时是否完全覆盖es6功能(我被告知覆盖百分比是96%)。
此时为NodeJS执行此操作是安全的!请参阅https://kangax.github.io/compat-table/es6/(服务器运行时/ node6列)