我可以在es6模块中更改导出的名称吗?

Jac*_*lan 8 ecmascript-6

我正在使用es6,因此没有类装饰器.如果我有类装饰器,我会这样做:

@b
export class A {}
Run Code Online (Sandbox Code Playgroud)

这意味着b(A)将被导出为A.

但是我没有装饰器,所以我必须做这样的事情:

class A {}
export const C = b(A)
Run Code Online (Sandbox Code Playgroud)

但是现在我的模块将b(A)导出为C,但是我想将它导出为A.

有没有办法在我导出时更改名称以使其工作?

log*_*yth 16

您可以使用export { ... }语法选择其他名称.

class A {}
const C = b(A)
export {C as A};
Run Code Online (Sandbox Code Playgroud)

你也可能这样做

export const A = b(class A { });
Run Code Online (Sandbox Code Playgroud)