使用 TypeScript 将箭头函数编译为常规函数

Compile arrow functions into regular functions with TypeScript

一个非常简单的问题,但我还没有在任何地方找到答案:是否有一些开关可以使 TypeScript 将箭头函数编译为普通 JavaScript 函数?

我在我的代码中经常使用它们,我不想重写所有内容。但我最近意识到,IE 不支持它们。

我已经尝试将脚本版本切换到 ES5,但是我的代码将无法再编译,因为我也在使用 "filter",这似乎不是它的一部分.但是,我不知道,这是否会首先完成这项工作。

箭头函数是 ES6 的一部分,但您应该能够使用 Babel 将代码转换为 ES5。有一个 babel-preset-typescript 你应该可以使用它。

如果您只想将箭头函数转换为常规函数并保持其余代码编译,您可以将 target 配置设置为 es5lib 属性 到 es6:

"compilerOptions": {
    "target": "es5",
    "lib": ["es6"],
    // ....
}

这将允许使用 ES6 功能的代码在以 ES5 为目标时进行编译。但是您必须确保这些功能(如 filter)在运行时可用。如果它们不可用,它将抛出运行时异常。