Typescript 高级类型推断

在普通场景下,使用typescript的基本类型以及高级类型(联合类型,交叉类型等)已经足够,在特殊场景下我们需要对类型进行推断,typescript内置了一部分常用的类型工具

使用typescript类型推断可以帮助我们由一个类型得到另外一个类型

typescript内置的类型工具

以下为部分内置工具类型以及相关的应用

type Pick<T, K extends keyof T> = {
    [P in K]: T[P];
};

type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};
// 将所有属性设为可选
type Partial<T> = {
    [P in keyof T]?: T[P];
};
// 将所有属性设为必须    
type Required<T> = {
    [P in keyof T]-?: T[P];
};
//  例如以此为工具将类型部分属性设置为必需属性

type RequiredProps<T, K extends keyof T> = {
    [p in K]-?: T[p]
} & T
type data = {
    a: string
    c?: string
    d?: boolean
}
// {
//    a: string
//    c: string
//    d ?: boolean
// }
type c = RequiredProps<data, ' c'>
// Omit 为Pick和Exclude的衍生工具
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

一些类型继承关系

// false
type stringIsN
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值