- 根据一个数组对象里的某一个key,来设置类型为这个 key 的 union 类型
const a = [{
label: "测试",
value: 1
}, {
label: "测试2",
value: 2
}] as const
type ValuesOf<T extends readonly unknown[], K extends keyof T[number]> = T[number] extends infer U ? U extends Record<K, unknown> ? U[K] : never : never;
type Avalues = ValuesOf<typeof a, "label"> // "测试" | "测试2"
type Alabels = ValuesOf<typeof a, "value"> // 1 | 2
网友评论