我有这段代码来自动输入列,所以我不必在任何时候指定它,但它有一个array[]
键的问题。
当突出显示render
键时,它似乎显示了正确的类型,但真实的callback (value) => value.id
似乎有一个any
类型。
type Payload = {
name: string;
items: string[];
};
type Render<P> = (value: P) => any;
type Col<
T extends object,
K = keyof T | Array<keyof T>
> = K extends Array<keyof T>
? {
key: K;
render: Render<{ [key in K[number]]: T[key] }>
}
: K extends keyof T ? {
key: K;
render: Render<T[K]>
} : never
const cols: Col<Payload>[] = [
{
key: 'name',
render: (name) => name
},
{
key: ['name', 'items'],
render: (obj) => `${obj.name} - ${obj.items.length}`
},
];
操场
1条答案
按热度按时间nbysray51#
在这一行上没有信息可以推断
obj
的类型,它被推断为any
:如果
any
: