现在它将class X { ... }
翻译为var X = function X(...) { ... }
,如何将其输出为function X (...) { ... }
?
答案 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启用时尽可能模仿时间死区。