0
我是新來的「ES7」裝飾者(我真的認爲裝飾者是由Babel babel-plugin-transform-decorators-legacy
插件啓用的,最初基於ES7裝飾者建議),並且我對他們的工作方式有點麻煩。我知道一個方法修飾器修改了這個方法,但我不清楚在這個過程中會發生什麼「副作用」。具體來說,我想知道一個裝飾器是否可以生成一個export
,即。我可以使一個裝飾這樣的:Babel Decorators:是否可以創建一個「@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
聲明?
應該在模塊的頂部聲明導出,以便它們可以靜態分析。所以,即使你可以(它可能需要一些hacky的插件,例如Babel),你真的不應該這樣做。 – sdgluck
爲什麼你想要導出一個方法呢? – Bergi
模塊可能會將某些東西看作是靜態函數,但是(在幕後),將該函數作爲(單例)對象的方法實現可能更有意義。 – machineghost