【发布时间】:2020-09-16 14:34:18
【问题描述】:
打字稿问题:
给定一个可区分的联合类型
interface A {
discriminator: "A";
data: string;
}
interface B {
discriminator: "B";
data: string;
}
interface C {
discriminator: "C";
num: number;
}
type U = A | B | C;
type Discriminator = U["discriminator"];
type AorB = SubsetOfU<"A"|"B">;
const f = (d:AorB) => d.data; // Should work
如何编写SubsetOfU 来提取联合类型的子集?
当然,我不是在解决这里的具体案例(只是A|B),而是一个更复杂的场景。
type SubsetOfU<K extends Discriminator> = ??????
【问题讨论】:
标签: typescript