使用 TypeScript 将箭头函数编译为常规函数
Compile arrow functions into regular functions with TypeScript
一个非常简单的问题,但我还没有在任何地方找到答案:是否有一些开关可以使 TypeScript 将箭头函数编译为普通 JavaScript 函数?
我在我的代码中经常使用它们,我不想重写所有内容。但我最近意识到,IE 不支持它们。
我已经尝试将脚本版本切换到 ES5,但是我的代码将无法再编译,因为我也在使用 "filter",这似乎不是它的一部分.但是,我不知道,这是否会首先完成这项工作。
箭头函数是 ES6 的一部分,但您应该能够使用 Babel 将代码转换为 ES5。有一个 babel-preset-typescript 你应该可以使用它。
如果您只想将箭头函数转换为常规函数并保持其余代码编译,您可以将 target
配置设置为 es5
和 lib
属性 到 es6
:
"compilerOptions": {
"target": "es5",
"lib": ["es6"],
// ....
}
这将允许使用 ES6 功能的代码在以 ES5 为目标时进行编译。但是您必须确保这些功能(如 filter
)在运行时可用。如果它们不可用,它将抛出运行时异常。
一个非常简单的问题,但我还没有在任何地方找到答案:是否有一些开关可以使 TypeScript 将箭头函数编译为普通 JavaScript 函数?
我在我的代码中经常使用它们,我不想重写所有内容。但我最近意识到,IE 不支持它们。
我已经尝试将脚本版本切换到 ES5,但是我的代码将无法再编译,因为我也在使用 "filter",这似乎不是它的一部分.但是,我不知道,这是否会首先完成这项工作。
箭头函数是 ES6 的一部分,但您应该能够使用 Babel 将代码转换为 ES5。有一个 babel-preset-typescript 你应该可以使用它。
如果您只想将箭头函数转换为常规函数并保持其余代码编译,您可以将 target
配置设置为 es5
和 lib
属性 到 es6
:
"compilerOptions": {
"target": "es5",
"lib": ["es6"],
// ....
}
这将允许使用 ES6 功能的代码在以 ES5 为目标时进行编译。但是您必须确保这些功能(如 filter
)在运行时可用。如果它们不可用,它将抛出运行时异常。