2016-11-06 4 views
2

装飾されたクラスに新しいメソッドを追加したいと思います。すべてうまくいきますが、コンパイラはメソッドが存在しないと不満を持ちますが、どのようにコンパイラを満たすことができますか?Typescriptデコレートクラス新しいメソッドを追加

あなたが使用することができ
export function decorate(constructor : Function) { 

    constructor.prototype.someMethod = function() { 

    } 

} 

@decorate 
class Test { 
    constructor() { 
    //Property 'someMethod' does not exist on type 'Test'. 
    this.someMethod(); 
    } 
} 

答えて

1

(<any>this).someMethod(); 

か:あなたは実際にはインタフェースを実装していないので、あなたがthisの方法someMethod()が含まれていることを確認するためのインターフェイスを使用することはできません

this['someMethod'](); 

だから私はこれら二つが唯一の選択肢だと思う。

関連する問題