工具类型

2022-04-19  本文已影响0人  sweetBoy_9126

Record

type A = Record<'name' | 'sex', string>
等价于
interface  A{
    name: string;
    sex: string;
}

Partial 部分类型

interface A {
    id: number;
    name: string;
}
type B = Partial<A>
等价于
interface B {
    id?: number;
    name?: string;
}

Required 必填类型

type B = Required<A>
等价于
interface B {
    id: number;
    name: string;
}

Readonly 只读类型

type B = Readonly<A>
等价于
interface B {
    readonly id?: number;
    readonly name: string;
}

Exclude 排除类型(用于基础类型)

Exclude<T, U> -- 从T中剔除可以赋值给U的类型。

type A = '男' | '女'
type B = Exclude<A, '女'>
等价于
type B = '男'

Extract 提取类型(用于基础类型)

type A = '男' | '女'
type B = Extract<A, '女'>
等价于
type B = '女'

Pick 提取包含key的类型(用于复杂类型)

type A = {
    name: string;
    age: number;
    height: number;
}
type B = Pick<A, 'name' | 'age'>
等价于
type B = {
  name: string;
  age: number;
}

Omit 排除包含key的类型(用于复杂类型)

type B = Omit<A, 'name' | 'age'>
等价于
type B = {
  height: number;
}

ReturnType 返回值类型

function c () {
    return {
        name: 'lifa',
        age: 18,
        height: 180
    }
}
type C = ReturnType<typeof c>
等价于
type C = {
  name: string;
  age: number;
  height:number;
}
上一篇下一篇

猜你喜欢

热点阅读