ts这三个工具类型你见过吗?(Pick,Omit,Partial )


前言

在TypeScript(TS)中,Pick、Omit 和 Partial 是三个非常有用的内置工具类型(utility types),它们允许你从一个现有的类型中挑选、排除或部分地使属性变为可选。这些工具类型在处理复杂类型时非常有用,特别是当你需要基于现有类型创建新类型,但想要包含、排除或修改某些属性时。


一、Pick

Pick<T, K> 创建一个新类型,这个类型包含从 T 中挑选的 K 属性。K 是一个或多个属性名的联合。

interface Person {
  name: string;
  age: number;
  address: string;
}

// 创建一个新类型,只包含Person的name和age属性
type PersonNameAge = Pick<Person, 'name' | 'age'>;

const person: PersonNameAge = {
  name: 'Alice',
  age: 30,
  // address: '123 Main St' // 错误:address不在PersonNameAge类型中
};

二、Omit

Omit<T, K> 创建一个新类型,这个类型包含从 T 中排除 K 属性的所有其他属性。K 是一个或多个属性名的联合。

interface Person {
  name: string;
  age: number;
  address: string;
}

// 创建一个新类型,排除Person的address属性
type PersonWithoutAddress = Omit<Person, 'address'>;

const personWithoutAddress: PersonWithoutAddress = {
  name: 'Bob',
  age: 25,
  // address: '456 Elm St' // 错误:address不在PersonWithoutAddress类型中
};

三、Partial

Partial 创建一个新类型,这个类型包含 T 的所有属性,但所有属性都变成了可选的。

interface Person {
  name: string;
  age: number;
  address: string;
}

// 创建一个新类型,其中所有属性都是可选的
type PartialPerson = Partial<Person>;

const partialPerson: PartialPerson = {
  // name: 'Charlie', // 可选
  // age: 40, // 可选
  address: '789 Oak St' // 只提供address也可以
};

效果展示:
在这里插入图片描述
在这里插入图片描述

总结

这些工具类型在处理对象类型时非常强大,它们允许你以声明性的方式轻松地构建和修改类型,而不需要手动定义新的接口或类型别名。在开发大型应用程序时,这可以显著提高代码的可维护性和可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值