TypeScript-进阶(九)-预定义的类型演算

40 阅读1分钟

1.Partial

Partial<T>将类型T中的成员变成可选

2.Required

Required<T>将类型T中的成员变成必选

3.Readonly

Readonly<T>将类型T中的成员变成只读

4.Exclude

Exclude<T,U>简单理解:将T类型中关于U类型的类型删除掉

type G = 'name' | 'age'
type H = 'name'
type I = Exclude<G, H> // 'age'

5.Extract

Extract<T,U>简单理解:提取类型T和类型U的公有类型

type G = 'name' | 'age'
type H = 'name'
type I = Extract<G, H> // name

6.NonNullable

NonNullable<T>将移除T中的null、undefined类型

type A = 'abc' | null | undefined
type C = NonNullable<A> // 'abc'

7.ReturnType

ReturnType<T>获取函数返回值的类型,注意:T必须为类型

type A = () => string

type B = ReturnType<A> // string


function sum(a: number, b: number) {
    return a + b
}
// 通过typeof拿到函数的类型
type C = ReturnType<typeof sum> // number

8.InstanceType

InstanceType<T>用于获取构造函数类型的实例类型

class A { }

const a = new A()

type B = InstanceType<typeof A> // A