我是" 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
语句?
答案 0 :(得分:2)
不,无法动态创建导出声明。充其量,您可以动态创建包含它们的模块文件。