美文网首页
TypeScript全解:泛型编程(下)

TypeScript全解:泛型编程(下)

作者: littleyu | 来源:发表于2023-06-12 22:00 被阅读0次

开始逐渐体操化

先来看一些内置的 TS 工具

type Person = { name: string; age: number; }

type X1 = Readonly<Person>
type X2 = Partial<Person>
type X3 = Required<Person>
type X4 = Record<string, number>
type X5 = Exclude<1 | 2 | 3, 1 | 2> // 3
type X6 = Extract<1 | 2 | 3, 2 | 4> // 2
type X7 = Omit<Person, 'name' | 'age'>

Readonly

type Readonly<T> = {
  readonly [K in keyof T]: T[K]
}

关键词 in,而不是用 :,上之前的文章种也提到过,in 多用于泛型

Partial

type Partial<T> = {
  [K in keyof T]?: T[K]
}

Required

type Required<T> = {
  [K in keyof T]-?: T[K]
}

Record

type Record<K extends string | number | symbol, V> = {
  [key in K]: V
}

Exclude

type Exclude<T, K> = T extends K ? never : T

Extract

type Extract<T, K> = T extends K ? T: never

Omit

type Omit<T, K> = {
  [K2 in keyof T as (K2 extends K ? never : K2)]: T[K2]
}

Pick

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

这个时候在来实现 Omit 更加简单

type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>

Mutable

type Mutable<T> = {
  -readonly [K in keyof T]: T[K]
}

结论

理论上 TS 可以完成所有 JS 的功能

超牛的项目

象棋

https://github.com/chinese-chess-everywhere/type-chess

lisp 解释器

型体操天花板

https://zhuanlan.zhihu.com/p/427309936

相关文章

  • 不理解Typescript泛型?看完就理解了

    如何理解泛型 泛型(Generic Type)存在于许多编程语言中,许多刚接触Typescript且没有Java、...

  • 2020-11-05Typescript(2.2)

    泛型 Generics---typeScript中最难的一部分 泛型 Generics---约束泛型 泛型 Gen...

  • TS 泛型+装饰器

    typescript 中的泛型 泛型的定义泛型函数泛型类泛型接口 泛型:软件工程中,我们不仅要创建一致的定义良好的...

  • TypeScript泛型

    TypeScript泛型 泛型(Generic) 定义一个函数或类时,有些情况下无法确定其中要使用的具体类型(返回...

  • bunny笔记|TS基础(2):泛型函数、泛型约束、在泛型约束中

    01 typescript的操纵类型 02 03 04 泛型约束 05 在泛型约束中使用类型参数 06 在泛型中使...

  • 03_TypeScript学习(三)

    一. TypeScript枚举类型 二. 枚举类型的值 三. 认识泛型 四. 泛型实现类型参数化 五. 泛型的基本...

  • TypeScript 学习笔记4 泛型

    1.泛型 1.1 泛型函数 1.2 泛型类 1.3 泛型接口 Typescript从0到1-学习视频教程-培训课程...

  • typescript

    title: typescript学习tags: typescript学习 [toc] 泛型 基本使用 两种使用方...

  • TypeScript 泛型

    泛型函数 使用 数组 类 泛型约束

  • TypeScript泛型

    有时候编程还要考虑它的复用性,很多时候不需要指定它的类型,或者同样的方法逻辑 但是入参和出差的类型不同。这个时候就...

网友评论

      本文标题:TypeScript全解:泛型编程(下)

      本文链接:https://www.haomeiwen.com/subject/miazedtx.html