私は、以下の機能を持っている:Promise <T>のようなPromiseにジェネリックスを渡しますか?
class RestService {
public async get<T>(func: string): Promise<T> {
var toRet = {};
await fetch(EndPoint + func)
.then(response => response.json() as Promise<T>)
.then(data => {
toRet = data;
})
.catch(e => {
});
return toRet as T;
}
}
すべてが正常に動作しますが、私は「データ」で取得応答は常に汎用オブジェクトです。
class Model
{
string name;
}
などのような関数を呼び出します:私はそうのようなモデルを持っているかもしれません例えば
get<Model>("getmodel")
応答は常にのように見える汎用オブジェクトです:
{name:"some name"}
私の理解から、ジェネリックはTypescriptでサポートされており、Promiseは可変型を取ります。 ghtはgenericをgenericに渡すことができないということですか?
応答が常にモデルの場合、メソッドは汎用ではなく、返される型は 'Promise'でなければなりません。それはあなたが求めていたものですか? –
でも、エンドポイントからの応答はjsonオブジェクトです。モデルは単純にjsonオブジェクトフィールドと一致します。 Promiseここで、Tはjsonの値を持つクラスのインスタンスをオートポピュレートするクラスです。 –
tweetypi
私はgetのようになり、 'AnotherModel'の戻り値の型を期待しているかもしれませんが、 'AnotherModel'の変数宣言に一致するフィールドを持つ 'object'を返します... –
tweetypi