获取可为空数组中的第一个对象

WSC*_*WSC 1 typescript angular

我有一个像这样的数组:

episodes?: Episode[];
Run Code Online (Sandbox Code Playgroud)

在一个函数中,我想获取该数组中的第一个对象。我已经尝试过以下方法:

let episode: Episode = this.episodes?[0];
Run Code Online (Sandbox Code Playgroud)

或者

var episode = this.episodes?[0];
Run Code Online (Sandbox Code Playgroud)

然而,这两个都会给出以下错误:

错误:src/app/episodes/episodes.component.ts:30:45 - 错误 TS1005:预期为“:”。

如何从该数组中获取项目?

Ale*_*yne 5

你需要一个.

this.episodes?.[0];
Run Code Online (Sandbox Code Playgroud)

查看游乐场


但是,您仍然会遇到类型错误:

let episode: Episode = this.episodes?.[0];
Run Code Online (Sandbox Code Playgroud)

这是因为右侧的结果可能是undefined。如何处理这取决于你。但不知何故,您需要处理类型为Episode | undefined.

例如,您必须首先测试该值以查看它是否存在:

let episode = this.episodes?.[0];
if (episode) {
  console.log(episode.season) // works
} else {
  throw new Error("one episode is required!")
}
Run Code Online (Sandbox Code Playgroud)

查看游乐场