如何确保一个分部具有一个带有TypeScript的给定字段?

如何确保一个分部具有一个带有TypeScript的给定字段?,typescript,react-native,typescript-typings,react-native-flatlist,typescript-partial,Typescript,React Native,Typescript Typings,React Native Flatlist,Typescript Partial,我有一个“Post”类型,如下所示: 接口柱{ id?:字符串 标题:字符串 内容:字符串 标签?:字符串[] } 我需要在React原生平面列表中使用它,其中需要id。在这种情况下,将获取id <FlatList data={posts as Array<Partial<Post>>} renderItem={({ item }: { item: Partial<Post> }) => <ContentListItem post=

我有一个“Post”类型,如下所示:

接口柱{
id?:字符串
标题:字符串
内容:字符串
标签?:字符串[]
}
我需要在React原生平面列表中使用它,其中需要id。在这种情况下,将获取id

<FlatList
  data={posts as Array<Partial<Post>>}
  renderItem={({ item }: { item: Partial<Post> }) => <ContentListItem post={item} />}
  keyExtractor={(item: Partial<Post>) => item.id}
  ListHeaderComponent={ListHeaderComponent}
/>
}
keyExtractor={(项:部分)=>item.id}
ListHeaderComponent={ListHeaderComponent}
/>
其中键提取器带有下划线:

Type '(item: Partial<Post>) => string | undefined' is not assignable to type '(item: Partial<Post>, index: number) => string'.
Type 'Partial<Post>[]' is not assignable to type 'readonly ({ id: string; } & Partial<Post>)[]'.
Type'(item:Partial)=>string | undefined'不可分配给Type'(item:Partial,index:number)=>string'。
我试图将keyExtractor={(item:Partial)=>item.id}更改为:

keyExtractor={(item: {id: string} & Partial<Post>) => item.id}
keyExtractor={(项:{id:string}&Partial)=>item.id}
数据下面加下划线:

Type '(item: Partial<Post>) => string | undefined' is not assignable to type '(item: Partial<Post>, index: number) => string'.
Type 'Partial<Post>[]' is not assignable to type 'readonly ({ id: string; } & Partial<Post>)[]'.
类型“Partial[]”不能分配给类型“readonly({id:string;}&Partial)[]”。
有没有优雅的解决方案


谢谢

我是来用感叹号的:

keyExtractor={(item: Partial<Post>) => item.id!}
keyExtractor={(item:Partial)=>item.id!}