typescript中工具类型高级用法
Posted 黑暗之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript中工具类型高级用法相关的知识,希望对你有一定的参考价值。
Parameters,该工具类型能够获取函数类型T的参数类型并使用参数类型构造一个元组类型。示例如下:
type T0 = Parameters<() => string>; // []
type T1 = Parameters<(s: string) => void>; // [string]
type T2 = Parameters<<T>(arg: T) => T>; // [unknown]
type T4 = Parameters<
(x: a: number; b: string ) => void
>; // [ a: number, b: string ]
type T5 = Parameters<any>; // unknown[]
type T6 = Parameters<never>; // never
type T7 = Parameters<string>;
// ~~~~~~~
// 编译错误!string类型不符合约束\'(...args: any) => any\'
type T8 = Parameters<Function>;
// ~~~~~~~~
// 编译错误!Function类型不符合约束\'(...args: any) => any\'
partial 该工具接收一个类型,然后可以返回一个使该类型所有的属性都变成可选的新类型,如下
type Person =
name: string;
age: number
const a = Partial<Person>: name:\'xiaoming\'
or
const b = Parital<Person> :
/**
@desc Partial<Person>相当把Person类型改成 name?:string,age?:number
*/
Omit<T, key1 | key2 ]>该工具接收一个T类型和一个联合类型,然后返回一个删掉key属性的新类型,如下
type person =
name: string;
age: nuber
const a = Omit<person, \'name\'> : age:18
/**
@desc Omit <person, \'name\'>相当于把person类型改成age: number
*/
Pick<T, key1|key2> 该工具接收一个处理类型,和一个联合类型,然后返回一个中只包含联合类型属性的新类型,如下
type person =
name: string;
age: number
const a = Pick<person, \'name\'>:name: \'xiaoming\'
/**
@desc Omit <person, \'name\'>相当于把person类型改成name: string
*/
Record定义一个的对象键值对key value类型工具
// 例如我想有一个对象,属性为A B C 值为数字类型
const type key: string = \'A\' | \'B\'|\'C\'
const obj = Record<key , number> =
A:1,
B:2,
C:3
以上是关于typescript中工具类型高级用法的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript学习笔记——TS类型/高级用法及实战优缺点
TypeScript学习笔记——TS类型/高级用法及实战优缺点
阿里前端大佬TypeScript学习笔记——TS类型/高级用法及实战优缺点