2016-08-27 16 views
0

スタティックメソッドとインスタンスメソッド、およびその他のJavaScript宣言typescriptファイル(definitelyTyped)を認識するにはどうすればよいですか?
たとえば、exampleString.lengthはインスタンスメソッドですが、
String.fromCharCode()は静的メソッドです。
私は静的メソッドを他のクラスから認識するスクリプトを書く方法を探していました。 typescriptサービスapiを使って何か言いなさい。javascript宣言typescriptファイルの静的メソッドとインスタンスメソッドをdefinitelyTypedから区別する方法はありますか?

答えて

1

コメントが長すぎます。

まず、String.prototype.lengthは方法ではなく、値です。コンストラクタ関数がclassキーワードを使用して定義されている場合、メソッドがコンストラクタで定義されているかインスタンスで定義されているかを調べることにより、静的メソッドと非静的メソッドを検出できます。

class foo{ 
    bar(){} 
    static baz(){} 
} 

var instance = new foo(); 

console.log(instance.constructor.bar); // undefined 
console.log(instance.constructor.baz); // [Function: baz] 
console.log(instance.bar); // [Function: bar] 
console.log(instance.baz); // undefined 

だから、あなたはbazは静的であり、barは非静的メソッドであると結論付けることができます。また、String.lengthは悪い例です。someString.lengthString.prototype.lengthを参照していますが、String.lengthFunction.prototype.lengthを参照しています。

+0

ああ、申し訳ありません.length、私は静的メソッドを認識するスクリプトを書く方法を探していました。 typescriptサービスapiを使って何か言いなさい。 –

関連する問題