如何在TypeScript中向类装饰器添加参数?

mve*_*and 10 decorator typescript typescript1.8

我想为可以获取参数的类创建一个装饰器函数.

@Plugin("My first Plugin")
class myFirstPlugin {
   ...
}
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

function Plugin(constructor: Function, name:string){
    console.log("Plugin found: " + name);
}
Run Code Online (Sandbox Code Playgroud)

我在WebStorm中遇到错误说:

TS2346:提供的参数与呼叫目标的任何签名都不匹配

我该如何编写这个装饰器功能?

Nit*_*mer 22

如果您希望装饰器接收参数,那么装饰器函数需要返回实际的装饰器函数:

function PluginDecorator(name: string) {
    return (ctor: Function) => {
        console.log("Plugin found: " + name);
    }
}

@PluginDecorator("My first Plugin")
class myFirstPlugin {}
Run Code Online (Sandbox Code Playgroud)

(游乐场代码)

我将名称更改为PluginDecorator因为Plugin已经存在并且编译器抱怨该名称.