0
このコードは、CreateItemの呼び出しの最初のパラメーターがスコープ内の変数ではないため、コンパイルされません。汎用メソッドの型パラメーターの値の参照方法
abstract class Catalog<ItemType, IRaw> {
private CreateItem<ItemType, IRaw>(c: new (raw: IRaw) => ItemType, raw: IRaw): ItemType {
return new c(raw);
}
public ServiceUrl: string;
public Items: KnockoutObservableArray<ItemType> = ko.observableArray<ItemType>();
public LoadState: KnockoutObservable<LoadState> = ko.observable<LoadState>(LoadState.NotStarted);
private loadChunk(): void {
var that = this;
if (that.LoadState() === LoadState.NotStarted)
that.LoadState(LoadState.Loading);
if (that.LoadState() === LoadState.Loading) {
$.get(this.ServiceUrl, that.getChunkParameters()).then((result: Array<IRaw>) => {
if (result.length === 0) {
that.LoadState(LoadState.Complete)
} else {
for (var raw of result){
let foo = this.CreateItem(ItemType, raw);
that.Items.push(foo);
}
}
});
}
}
ジェネリックパラメータItemTypeの値に変数参照を取得するにはどうすればよいのですか?CreateInstanceに渡すことができますか?
私は恐れていました。私は継承を悪用するために書き直していますが、作曲の柔軟性はあまりありません。ああ、ドローイングボードに戻って。 –