如何修复我遇到的 Typescript 类型错误?
Property 'original_title' does not exist on type 'Media'.
和 Property 'original_name' does not exist on type 'Media'.
我正在从 API 获取数据并为其编写自己的类型。该 API 为电影和电视节目提供了 2 种不同的结构。电视节目有
name original_name origin country first_air_date
,电影有 original_title release_date title video
,但两者都有一些其他相同的属性,所以我写了这个类型,但在使用它时遇到错误。
我有一个打字稿类型,如下所示:
export type Media = {
adult: boolean;
backdrop_path?: string;
genre_ids: number[];
id: number;
original_language: string;
overview: string;
popularity: number;
poster_path?: string;
vote_average: number;
vote_count: number;
} & (
| {
original_title: string;
release_date: string;
title: string;
video: boolean;
}
| {
first_air_date: string;
name: string;
origin_country: string[];
original_name: string;
}
);
但是当尝试像这样使用它时:
...
<View>
{moviesData.results.map((result: Media) => (
<Text key={result.id}>{result.original_title}</Text>
))}
</View>
<View>
{showsData.results.map((result: Media) => (
<Text key={result.id}>{result.original_name}</Text>
))}
</View>
...
对于电影节目和电视节目特有的属性,你必须这样做
<View>
{showsData.results.map((result: Media) => (
<Text key={result.id}>{('original_title' in result) && result.original_title}</Text>
))}
</View>