我如何转换 TypeScript 类型?
How I can convert TypeScript type?
我有密码
interface IProps {
name: string;
age: number;
}
我想得到
type Result = {
key: 'name',
value: string
} | {
key: 'age',
value: number
}
有什么好的方法吗?
C考虑这个例子:
interface IProps {
name: string;
age: number;
}
type Distribute<Obj, Keys extends keyof Obj> = Keys extends any ? { key: Keys, value: Obj[Keys] } : never
type Builder<T> = Distribute<T, keyof T>
// type Result = {
// key: "name";
// value: string;
// } | {
// key: "age";
// value: number;
// }
type Result = Builder<IProps>
Here您可以找到有关分配率的更多信息
这行代码 { key: Keys, value: Obj[Keys] }
由于分布性
分别应用于每个 IProps
键
P.S。还有一个替代方法:
type AlternativeWay<T> = {
[Prop in keyof T]: {
key: Prop,
value: T[Prop]
}
}[keyof T]
type Result = AlternativeWay<IProps>
我有密码
interface IProps {
name: string;
age: number;
}
我想得到
type Result = {
key: 'name',
value: string
} | {
key: 'age',
value: number
}
有什么好的方法吗?
C考虑这个例子:
interface IProps {
name: string;
age: number;
}
type Distribute<Obj, Keys extends keyof Obj> = Keys extends any ? { key: Keys, value: Obj[Keys] } : never
type Builder<T> = Distribute<T, keyof T>
// type Result = {
// key: "name";
// value: string;
// } | {
// key: "age";
// value: number;
// }
type Result = Builder<IProps>
Here您可以找到有关分配率的更多信息
这行代码 { key: Keys, value: Obj[Keys] }
由于分布性
IProps
键
P.S。还有一个替代方法:
type AlternativeWay<T> = {
[Prop in keyof T]: {
key: Prop,
value: T[Prop]
}
}[keyof T]
type Result = AlternativeWay<IProps>