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

How to make babel output classes as named functions?

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

函数声明和ES6classes的区别在于函数声明被提升了:

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

并且classes处于时间盲区:

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

将class转译为函数声明是不正确的,ES6class的正确函数表示是:

const Foo = function Foo() {};

由于 ES5 中没有 const,Babel 将其转译为 var,并在启用 respective transform 时尽可能模仿临时死区。