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.6k
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]
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题