论述:试说明keyof U (U 是一个 联合类型) 的计算方式 与 接口的联合相当于求它们的公共父类之间的 关系
它们的目的都是求联合类型的共有部分:
接口的联合 的求值类型等同于一个结构对象,该对象只包含联合类型所有成员共有的属性
keyof U 得到的是联合类型成员之间共有属性键的集合
解释:
```typescript
// keyof U
type A = { a: string; b: number; };
type B = { a: string; c: boolean; };
type C = A | B;
type CK = keyof C;// keyof (A | B) -> keyof A & keyof B -> ('a' | 'b') & ('a' | 'c') -> "a"
// interface Unions
interface D {
d: string;
e: number;
}
interface E {
d: string;
f: boolean;
}
type F = D | E;// type F 其类型等效于 { d: string; }
```