我有这种类型
type ListingFilterBy = {
season?: string[];
name?: string;
isOnMarket?: boolean;
};
我想创建一个基于ListingFilterBy
类型的联合类型,如下所示:
type FilterAction =
| { key: "season"; value: string[] }
| { key: "name"; value: string }
| { key: "isOnMarket"; value: boolean };
是否有办法创建一个类型,使TS编译器知道FilterAction
类型中的key
字段是ListingFilterBy
类型的键?
2条答案
按热度按时间ttisahbt1#
这应该行得通:
igetnqfo2#
Map
ListingFilterBy
的每个键,删除undefined
:然后使用
keyof ListingFilterBy
得到最终的并集。Playground
如果您还想删除
null
,也可以使用NonNullable<ListingFilterBy[K]>
。