ng serve
を使用している場合はすべて動作します。私がng serve --prod --aot
を使用すると、それはType 'any[]' cannot be used as an index type
と文句を言う。それを修正できるものは何も見つかりませんでした。参照していると思われる 'any any []'は、タグ変数です。なぜなら、コメントアウトするとすべてがコンパイルされるからです。タイプ 'any []'をインデックスタイプとして使用することはできません。
ここに関連するコードです:
//cluster-details.component.ts
...
export class ClusterDetailsComponent implements OnInit {
infoTitles = {
edgeNodePublicDNS: 'Edge Node Public DNS',
...
tags: 'Tags'
};
infoKeys: string[];
info: any;
tags: any[];
...
this.requestsService.emrinstanceDetailsGET(body)
.subscribe(
(data) => {
this.infoKeys = Object.keys(data);
this.info = data;
...
クラスタdetails.component.html:
<tr *ngFor="let key of infoKeys">
<td>
<strong>{{ infoTitles[key] }}:</strong>
</td>
<td>
{{info[key]}}
</td>
</tr>
<tr>
<td>
<strong>{{ infoTitles[tags] }}:</strong>
</td>
<td>
{{tags}}
</td>
</tr>
そして、このような要求を返すデータ:
.map(
(response: Response) => {
const data = response.json();
return data['clusterDetail'];
は、今私は知っています「ちょっとタイプしないでください」と言われましたが、どうしたらいいか分かりませんでした。返されるのは、単なるObject型のJSON値です。タイプをObjectに変更しても機能しませんでした。他のタイプのものは表示されません。たぶん私はそれのためのインターフェイスを作成する必要がありますか?
上記の情報変数は、上記の「any」型として示されています。それを 'any []'に変更すれば同じエラーになりますか? – DeborahK
ObjectまたはObject []を使用した場合と同じエラーが発生します。それはまだ4つのうちのどれかで 'ng serve 'だけで動作します。 – canada11