クラスデコレータのデコレータシグネチャを、すでに存在するjavascriptコードのtypescriptで定義したいとします。のは、私がFoo
必要なメソッドを含むクラスデコレータシグネチャ
class Foo {
someMethod() {
}
}
が続いても、入力クラスを取り、いくつかのクラスのデコレータ方法があるが、それは入力クラスは、それが飾られる前に定義されているいくつかの他の方法を持っている必要がありますいくつか、すでに定義されたクラスがあるとしましょう。その後、
interface WithRequiredMethod {
requiredMethod(): any;
}
declare function decorate<C extends Foo>(input: C & WithRequiredMethod): C;
としてそれを呼び出す:
function decorate(someClass) {
// some properties and methods injection happens here
}
その後、私のtypescriptですコードで、私のように飾るためにクラスを作成します。私が試した定義については、次に
class Bar extends Foo {
requiredMethod(): any {
return null;
}
}
const DocoratedBar = decorate(Bar);
残念ながら、typescript doesn ' requiredMethod
が定義されていてもBarを有効な入力として認識しません。入力クラスにrequiredMethod
の存在を確認するために、decorate
署名を定義する方法はありますか?
おかげで、それは私が見落としものです。 –