ts 保留或排除,必填或选填

发布时间 2023-12-11 14:05:26作者: 最好的年纪

1.保留或排除

interface AddFieldTemp {
  id: string;
  name: string;
  // other fields..
  createTime: string; 
  updateTime: string;
}

type SubsetType = Pick<AddFieldTemp, 
  'name' | 'originalName' | 'enterpriseId' | // 要保留的字段
> & Omit<AddFieldTemp, 
  'id' | 'createTime' | 'updateTime'  // 要排除的字段
>

 

2.必填或选填

interface AddFieldTemp {
  id: string; 
  name?: string;
  age?: number;
  address: string;
}

type SubRequired = Required<
  Partial<Omit<AddFieldTemp, 'name' | 'age'>>
>

// 等价于
type SubRequired = {
  id: string;
  address: string; 
}