【问题标题】:Typescript in nodejs/koa, is it safe to target ES6?nodejs/koa 中的打字稿,以 ES6 为目标是否安全?
【发布时间】:2016-07-21 00:07:17
【问题描述】:

我正在迁移以在 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 为目标,因为 typescript 是一个转译器,它应该能够像 babel 一样编译生成器来承诺?

顺便说一句,我已经尝试安装 es6-shim 打字没有运气。

【问题讨论】:

    标签: javascript node.js typescript


    【解决方案1】:

    我想知道为什么我不能以 es5 为目标,因为 typescript 是一个转译器,它应该能够像 babel 一样编译生成器来承诺

    他们正在重写 TypeScript 的 emit 部分,以便像 babel 一样使用 pluginshttps://github.com/Microsoft/TypeScript/issues/5595 基本上只是尚未完全编写的代码。

    我担心 nodejs 运行时是否完全覆盖 es6 功能(有人告诉我覆盖率是 96% 左右)。

    此时,对 NodeJS 执行此操作是安全的!见https://kangax.github.io/compat-table/es6/(服务器运行时/node6 专栏?)

    【讨论】:

    • 非常好,等不及插件功能,刚刚检查了路线图,它将在 2.1 中出现。另外,nodejs的覆盖率是93%,我觉得还是要小心一点。顺便问一下,你能推荐一些关于 nodejs 和 typescript 的最佳实践链接吗?
    • 对于开发模式,我们可以针对 es6。对于生产 IMO,我们可以使用 typescript 编译到 es6,最后使用 babel-node 构建到 es5 以确保安全。
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2015-07-13
    • 2019-07-19
    • 2020-08-30
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多