H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】typescript 从一个对象里删除某种类型的key

可能描述不是很清楚,大概意思就是下面这样

interface IType {
  str1: string,
  str2: string
  num1: number,
  num2: number,
}

// type Fix = /* ... */

// 把所有string类型的排除
type A1 = Fix<IType, string>;  // => { num1: number, num2: number }

// 把所有number类型的排除
type A2 = Fix<IType, number>;  // => { str1: string, str2: string }

Fix这个type应该怎么写呢

回答:

type FilterKeys<T, U> = {
  [key in keyof T]: T[key] extends U ? never : key;
}[keyof T]

type Fix<T, U> = Pick<T, FilterKeys<T, U>>;

type A1 = Fix<IType, string>;

本文地址:H5W3 » 【前端问题精选】typescript 从一个对象里删除某种类型的key

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址