【问题标题】:Angular/Typescript - Element implicitly has an 'any' type because index expression is not of type 'number'Angular/Typescript - 元素隐式具有“任何”类型,因为索引表达式不是“数字”类型
【发布时间】:2022-01-05 21:41:00
【问题描述】:

我得到错误元素隐含地具有“任何”类型,因为当我不使用 selected_team 值之类的键时,索引表达式不是“数字”类型。 HTML:

<option *ngFor="let player of teams[selected_team]" value="player.name">...</option>

代码:

selected_team = "";
teams: OverviewTeamType[] = [];

界面:

export interface OverviewTeamType {
  name: string;
  players: [
    {
      age: number;
      birthday: string;
      height: number;
      hokejczId: number;
      id: string;
      name: string;
      position: string;
      stick: string;
      surname: string;
      weight: number;
      yearOfBirth: number;
    }
  ];
  shortName: string;
  shortcut: string;
}

【问题讨论】:

  • 理所当然 - 你正在用字符串索引一个数组。

标签: angular typescript types


【解决方案1】:

我想这就是你想要的。 ngFor 语句中的teams.find(team =&gt; team.name === selectedTeam).players 而不是teams[selectedTeam]

<option *ngFor="let player of teams.find(team => team.name === selectedTeam).players" value="player.name">...</option>

export interface OverviewTeamType {
  name: string;
  players: {
      age: number;
      birthday: string;
      height: number;
      hokejczId: number;
      id: string;
      name: string;
      position: string;
      stick: string;
      surname: string;
      weight: number;
      yearOfBirth: number;
    }[];
  shortName: string;
  shortcut: string;
}

selected_team = "";
teams: OverviewTeamType[] = [];

【讨论】:

  • 这将导致“绑定不能在第 32 列包含分配”错误,并且在角度绑定中使用表达式也是一种不好的做法。但我以不同的方式解决了整个问题。
猜你喜欢
  • 2021-10-11
  • 2017-03-14
  • 2018-04-25
  • 2023-04-01
  • 2021-08-01
  • 2016-07-23
  • 2023-02-15
  • 2020-11-13
  • 2019-12-17
相关资源
最近更新 更多