【发布时间】:2022-01-18 14:17:07
【问题描述】:
type MyObjType = {
a: number,
b?: string
}
type Column<Data, DataKey extends keyof Data> = {
accessor: DataKey,
value: Data[DataKey]
}
const column: Column<MyObjType, keyof MyObjType>[] = [{
accessor: 'a',
value: "" // (property) value: string | number | undefined
}]
但是当accessor 为'a'时,我希望value 的类型为数字,当accessor 为'b'时,值为undefined | string
如何定义Column 类型以使其工作?
【问题讨论】:
-
@captain-yossarian 好抓船长!只是一个小问题,我们通过创建一个临时对象类型并获取它的所有值类型来构建
ValueHolder,有没有办法直接定义这种类型?你的答案是正确的,只是想知道是否有更好的方法 -
你是什么意思?我认为没有更好的方法来做到这一点(
-
@captain-yossarian 感谢您的反馈!我相信它是正确的
标签: typescript typescript-generics