typescript 从一个类型中剔除另外个类型的key

新手上路,请多包涵

如下:

interface A {
  name: string;
  age: number;
  sex: string;
  height: number;
  weight: number;
}

interface B {
  name: string;
  age: number;
}

//实现一个方法=== C 
//interface C的接口类型是:A中去除B中相同key之外的类型
// 即
// interface C = {
//   sex: string;
//   height: number;
//   weight: number;
// }
阅读 4.7k
3 个回答
✓ 已被采纳新手上路,请多包涵

最简单的
interface C=Omit<A,keyof B>

interface A {
  name: string
  age: number
  sex: string
  height: number
  weight: number
}

interface B {
  name: string
  age: number
}

type CKey = Exclude<keyof A, keyof B>

type C = {
  [key in CKey]: A[key]
}
推荐问题