联合类型的 keyof 和查找类型对
Union type of keyof and Lookup Types pairs
来自这些类型:
type I1 = {
a: number;
b: boolean;
};
type I2 = {
x: string;
y: number;
};
我想要这样的类型:
type O1 =
| {
name: "a";
value: number;
}
| {
name: "b";
value: boolean;
};
type O2 =
| {
name: "x";
value: string;
}
| {
name: "y";
value: number;
};
我如何定义 X 才能做到:
type O1 = X<I1>;
type O2 = X<I2>;
发现这个 hack(用@Titian 的 改进):
type X<I> ={ [k in keyof I]: { name: k; value: I[k]; } }[keyof I];
来自这些类型:
type I1 = {
a: number;
b: boolean;
};
type I2 = {
x: string;
y: number;
};
我想要这样的类型:
type O1 =
| {
name: "a";
value: number;
}
| {
name: "b";
value: boolean;
};
type O2 =
| {
name: "x";
value: string;
}
| {
name: "y";
value: number;
};
我如何定义 X 才能做到:
type O1 = X<I1>;
type O2 = X<I2>;
发现这个 hack(用@Titian 的
type X<I> ={ [k in keyof I]: { name: k; value: I[k]; } }[keyof I];