角度4.2.4のアプリケーションでは、異種タイプを返すためにRxJSのObservable.forkJoin
をいくつかの場所で使用しています。例えばObservable.forkJoin()TypeScript 2.4.1およびRxjs 5.4.2に更新した後のTS2322エラー
:以下のサービスのシグネチャを持つ
private fleet: Aircraft[];
private contractList: string[];
Observable.forkJoin([
this.fleetService.getFleet(),
this.fleetService.getContractList()
]).subscribe(
next => {
this.fleet = results[0];
this.contractList = results[1];
},
error => console.error
);
:
getFleet(): Observable<Aircraft[]> { ... }
getContractList(): Observable<string[]> { ... }
2.4.1を活字体にアップデートした後、tsc
は今this.contractList
のため、次のエラーで文句を言う:
エラー./app/fleet /fleetComponent.ts(xx、xx): エラーTS2322:タイプ '航空機[]'は 'string []'タイプに割り当てられません。
Aircraft[]
をstring[]
に割り当てようとしていません。彼らはresult[0]
と同じ型であるかのようにresult[]
内のすべての要素が処理されます
同じことは、我々が実装のすべて他Observable.forkJoin
真です。
Error with Actions observable in @ngrx/effects using TypeScript 2.4.1の問題と非常によく似ていますが、"noStrictGenericChecks": true,
をtsconfig.js '"compilerOptions"
に追加しても問題は解決しませんでした。
どうしてですか?これをどうすれば解決できますか?
ブリリアント!私はあなたが 'forkJoin()'にリストを渡すことができるかどうかも知りませんでした。これで問題は解決しました。私は 'タプル(tuple) 'の説明に感謝します。 – msanford