如何将babel输出类作为命名函数?

时间:2018-04-19 18:55:23

标签: typescript webpack ecmascript-6 babel babel-loader

现在它将class X { ... }翻译为var X = function X(...) { ... },如何将其输出为function X (...) { ... }

1 个答案:

答案 0 :(得分:2)

函数声明和ES6类之间的区别在于函数声明被挂起:

console.log(Foo); // Foo
function Foo() {}

课程处于暂时的死区:

console.log(Foo); // ReferenceError
class Foo {}

将类转换为函数声明是不正确的,ES6类的正确函数表示是:

const Foo = function Foo() {};

由于ES5中没有const,因此Babel将其转换为var,并尝试在respective transform启用时尽可能模仿时间死区。