给定一条数据结构(API数组里面的个数是未知的)如下所示
const api = [
{
name: 'pageA',
table: true
},
{
name: 'pageB',
}
]
如何推导出类似这样的类型
type Result = {
pageA: boolean
pageB: unknown
}
即 name 作为key, 如果存在table即为boolean类型,否则为unknown类型
ts的大神们,这个该如何写啊,百度,谷歌都折腾了,还问了gpt也不行,就是值推不出来
我写的是这样的
const api = [
{
name: 'pageList',
table: true
},
{
name: 'pageAdd',
table: false
}
] as const;
type Ret<T extends readonly { name: string; table?: boolean }[]> = {
[K in T[number]['name']]: // 这里不会写
};
type Api = Ret<typeof api>;