0
私がjQTree(https://github.com/mbraak/jqTree)のsourceCodeを見ると、これはTypescriptで書かれています。typescriptでは(<typeof className> this.constructor)の意味は何ですか?
export default class SimpleWidget{
protected static defaults = {};
public options:any
protected $el : JQuery
constructor(el:Element,options:any){
this.$el = $(el);
console.log(typeof SimpleWidget)
let defaults = (<typeof SimpleWidget>this.constructor).defaults;
console.log(defaults)
this.options = $.extend({},defaults,options);
}
}
(this.constructorが)どういう意味:私はこれを見ましたか?アサーションの後で静的メソッドを取得するにはどうすればよいですか?
ありがとうございます。もう一つの質問は、の意味ですか?私の考えでは、 "typeof SimpleWidget"は文字列 "object"と同じですが、<"object"> this.constructorと書くと動作しません。 –
lisleyang
これは静的なデフォルトプロパティにアクセスするときに強く入力するためのものだと思います。 SimpleWidgetの*インスタンス*にコンストラクタ関数をキャストしようとしているので、 '( this.constructor).defaults'を実行できませんでした。実際にはクラスをクラスにキャストしようとしています(クラスがコンストラクタ関数にコンパイルされることを覚えておいてください)。これは '( this.constructor).defaults'で行われます。これはJavaScriptからコンパイルされたもので、 'var defaults = this.constructor.defaults'だけが残っています。 typescriptlang.org/playで試してみてください。 –