Babel Decorators:是否可以创建" @export"装饰?

时间:2016-09-26 17:58:25

标签: decorator ecmascript-next babel-decorator

我是" ES7"装饰器(我真正的意思是装饰器由最初基于ES7装饰器提议的Babel babel-plugin-transform-decorators-legacy插件启用),并且我对它们的工作方式有点麻烦。我知道方法装饰器会修改方法,但我不清楚是什么"副作用"可能发生在这个过程中。具体来说,我想知道装饰者是否可以生成export,即。我能做一个这样的装饰师:

class Foo {
    @export
    bar() { doSomething(); }
}

生成:

export const bar = Foo.prototype.bar;
// or
export const bar = new (Foo()).bar;

或者:

class Foo {
    @export
    static bar() { doSomething(); }
}

为:

export const bar = Foo.bar;

简而言之,装饰者是否可以创建export语句?

1 个答案:

答案 0 :(得分:2)

不,无法动态创建导出声明。充其量,您可以动态创建包含它们的模块文件。