• Jack Q
    2024-06-03 来自广东
    论述:试说明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; } ```

    作者回复: :) 这个问题其实从“keyof U会导致交叉运算”,以及交叉运算在基础类型中的语义这两个角度上来看,会更清晰。

    
    