【发布时间】:2019-05-13 11:23:44
【问题描述】:
我想使用可选属性而不是属性擦除来获得几种类型的联合。我写了下一段代码:
type A = { a: string, s: number };
type B = { b: string, s: number };
type C = { c: string, s: number };
type T_OR = A | B | C; // s
type T_AND = A & B & C; // a, b, c, s
type Result = Partial<T_AND> & T_OR; // a, b, c, s
我希望 Result 类型将包含 // a?, b?, c?, s 字段,但 Typescript 使用 分布式条件类型并将 Result 转换为 (Partial<T_AND> & A) | (Partial<T_AND> & B) | (Partial<T_AND> & C)。
如何防止这种行为并获得预期的结果?
【问题讨论】:
标签: typescript types