ES6 の `export class A` は `module.exports = A` と同等ですか? 質問する

ES6 の `export class A` は `module.exports = A` と同等ですか? 質問する

Babel でコンパイルされたコードを見ると、それらは等価ではないようです。実際、前者は に変換されますがexports.A = A、これは と等価ではありませんmodule.exports = A( である可能性がありますかmodule.exports.A = A?)

では、ES6 スタイルはあるのでしょうかmodule.export =? それとも、構文は ES6 でもそのままなのでしょうか? それとも、その構文は ES6 では推奨されなくなったのでしょうか?

ベストアンサー1

使用できます

export default class A {

}

または

class A {

}

export default A;

エクスポートすると

exports["default"] = A;
module.exports = exports["default"];

相互運用セクションに理由の説明がありますここ。

CommonJS および ES6 モジュールの使用を促進するために、エクスポート時に、他のエクスポートがないデフォルトのエクスポートmodule.exportsが に加えて設定されますexports["default"]

おすすめ記事