如何使用TypeScript确保部分对象具有给定的字段?

问题描述

我的类型为“发布”,如下所示:

interface Post {
  id?: string
  title: string
  content: string
  tags?: string[]
}

我需要在需要ID的React Native列表中使用它。在这种情况下,将获取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 上加下划线:

Type '(item: Partial<Post>) => string | undefined' is not assignable to type '(item: Partial<Post>,index: number) => string'.

我试图将keyExtractor = {(item:Partial)=> item.id}更改为:

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

其中数据带有下划线:

Type 'Partial<Post>[]' is not assignable to type 'readonly ({ id: string; } & Partial<Post>)[]'.

是否有一个优雅的解决方案?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)