gpt4 book ai didi

javascript - typescript 如何返回键类型

转载 作者:行者123 更新时间:2023-12-05 00:36:57 25 4
gpt4 key购买 nike

我找不到有关如何正确返回该类型的某个属性的类型的信息,将键传递到另一个字段中。
有人可以告诉我或指出我做错了什么吗? :(

type TUser = {
age: number,
initials: {
name: string
}
}

type TRendererFunctionArgs<TValues> = {
value: TValues[keyof TValues],
}

type TRenderer<TValues> = {
name: keyof TValues,
renderer: ({ value }: TRendererFunctionArgs<TValues>) => string,
}

const renderer : TRenderer<TUser> = {
name: 'initials',
renderer: ({ value }) => value.name, // <--- There is problem because. value : value: number | {name: string}
}
Playground link

最佳答案

这是一种使用 mapped type 的方法作为 indexed access type :

type TUser = {
age: number,
initials: {
name: string
}
}

type TRenderer<TValues> = { [K in keyof TValues]-?: {
name: K;
renderer: ({ value }: { value: TValues[K] }) => string;
} }[keyof TValues];

const renderer : TRenderer<TUser> = {
name: 'initials',
renderer: ({ value }) => value.name
}

关于javascript - typescript 如何返回键类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71840336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com