TypeScript 工具类型解析

深入理解TypeScript中的工具类型及其应用

TypeScript 工具类型解析

在 TypeScript 中,工具类型是一种强大的工具,用于创建和转换类型。本文将介绍一些常用的 TypeScript 工具类型,包括 RecordPartial、RequiredReadonlyPickExcludeExtractOmitNonNullableParametersConstructorParametersReturnTypeInstanceType

在这里插入图片描述

这些TypeScript 工具类型能帮助你更轻松地操作和转换类型:

  • Record: 定义对象的键值对类型。
  • Partial: 生成所有属性可选的新类型。
  • Required: 生成所有属性必需的新类型。
  • Readonly: 生成所有属性只读的新类型。
  • Pick: 从类型中选择指定属性生成新类型。
  • Exclude: 从类型中排除指定属性生成新类型。
  • Extract: 从类型中提取指定属性生成新类型。
  • Omit: 从类型中排除指定属性生成新类型。
  • NonNullable: 从类型中排除 null 和 undefined。
  • Parameters: 获取函数的参数类型并以元组形式返回。
  • ConstructorParameters: 获取构造函数的参数类型并以元组形式返回。
  • ReturnType: 获取函数的返回值类型。
  • InstanceType: 获取构造函数的实例类型。

Record

Record 是一个很常用的工具类型,用于定义一个对象的键值对类型。

typescript复制代码type Record<K extends string | number | symbol, T> = {
   
   
    [P in K]: T;
}
示例

定义一个描述宠物信息的对象

type petsGroup = 'dog' | 'cat' | 'fish';
interface IPetInfo {
   
   
    name:string,
    age:number,
}

type IPets = Record<petsGroup, IPetInfo>;

const animalsInfo:IPets = {
   
   
    dog:{
   
   
        name:'dogName',
        age:2
    },
    cat:{
   
   
        name:'catName',
        age:3
    },
    fish:{
   
   
        name:'fishName',
        age:5
    }
}

Partial

Partial 用于生成一个新类型,该类型与原始类型拥有相同的属性,但是所有属性都是可选的。

type Partial<T> = {
   
   
    [P in keyof T]?: Partial<T[P]>
}
示例
interface Foo {
   
   
    name: string; age?: number;
} 
type Bar = Partial<Foo
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一站丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值