次のインターフェイスは、JSON API応答を定義するために使用されます。
ステータスフィールドは、要求が成功したかどうかを示します。
データフィールドは、要求が成功したときにサーバーから返されるデータ(使用可能な場合のみ)を設定するために使用されます。
同様に、メッセージフィールドは、失敗した要求の際にエラーメッセージを設定するために使用されます。TypeScriptコンパイラ:Genericsを使用するときのコンパイラエラーを回避する方法
export interface IResponse<T> {
status: 'success' | 'fail';
data?: T;
message?: string;
}
サーバーからいくつかの会社データを取得する次の機能があるとします。
応答にはデータまたは文字列のいずれかが含まれます。次のように私はこの関数を呼び出すしようとすると
search(keyword: string): Observable<IResponse<ICompany[]|string>> {
return this.searchCompany(keyword);
}
は、私はどちらかICompany []または文字列可能性がありデータとしてコンパイルエラーを取得します。
this.dataImportService.search('')
.subscribe(
data => {
data.data[0].company_name // compile error
}, err => {
});
このコンパイルエラーを取り除くにはどうすればよいですか?
あなたは 'data.data [0] .company_name'試すことはできますか? –
@BunyaminCoskuner申し訳ありませんが、その "データ"部分を逃しました。私はdata.data [0] .xxxでコンパイラエラーを取得しています –