banner
banner
banner
NEWS LETTER

TS-实用类 Utility Types

Scroll down

在一个类型里面部分+必选

  • Required、Pick<T, K> –>(T☞type, K☞keys)
  • 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    interface totalProps {
    a?: number;
    b?: string;
    c?: string
    d?: number
    }
    type aPropsPick = Pick<totalProps, 'a' | 'c' | 'd' >
    const obj2: Required<aPropsPick> = { a: 5 ,c: 'ddd',d: 123 };

适用于构造对象类型

  • Record<Keys, Type> — 键,值
  • 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    type keyType = 'input' | 'arrow' | 'pick' | 'icon' | 'radio'

    interface totalProps {
    classname: string;
    placeholder: string;
    value: number;
    }

    const obj2: Record<keyType, totalProps> = {
    input: {
    classname: 'string',
    placeholder: 'string',
    value: 123
    },
    arrow: {
    classname: 'string',
    placeholder: 'string',
    value: 123
    },
    pick: {
    classname: 'string',
    placeholder: 'string',
    value: 123
    },
    icon: {
    classname: 'string',
    placeholder: 'string',
    value: 123
    },
    radio: {
    classname: 'string',
    placeholder: 'string',
    value: 123
    }
    };

省略 排除

  • Omit<对象,要省略的字段>
  • Exclude<字符串字面量,要排除的字段>
  • Extract<Type,Union>返回的是一个并集
  • type TodoPreview = Exclude<’a’ | “b” |”c” | “d”, “b”>;

更多映射类型TS-高级类型

其他文章
cover
TS-安装和编译
  • 24/11/01
  • 11:40
  • TypeScript
cover
threeJS-修改模型的child
  • 24/11/01
  • 11:01
  • ThreeJS
目录导航 置顶
  1. 1. 在一个类型里面部分+必选
  2. 2. 适用于构造对象类型
  3. 3. 省略 排除
  4. 4. 更多映射类型 — TS-高级类型
请输入关键词进行搜索