福州软件园东莞网络优化哪家公司好
使用泛型来做类型映射
,将对象(或数组)中类型转换为另一个类型
首先,定义一个类型Student
// 定义一个类型`Student`interface Student {name: string,age: number}
1、把Student
的所有属性都变为可空的
type Nullable<T> = {[p in keyof T]: T[p] || null}type NullAbleStudent = Nullable<Student>
2、把Student
的所有属性都变为只读的
type Readonly<T> = {readonly [P in keyof T]: T[p]}type ReadonlyStudent = Readonly<Student>
3、把Student
的属性都变成可选的
type Partical<T> = {[P in keyof T]?: T[P] }type ParticalStudent = Partical<Student>
把属性都变成Promise
type ToPromise<T> = {[P in keyof T]: Promise<T[P]>}type Coordinate = [number, number]type PromiseCoordinate = ToPromise<Coordinate> // [Promise<number>, Promise<number>]
function toRefs<T extends object> (object: T): {[K in keyof T]: ToRef<T[K]>
}`function toRefs<T extends object>` 这是一个泛型函数,它接受一个类型为 object 的参数 object,并且返回一个新的对象。`: { [K in keyof T]: ToRef<T[K]> }` 这是函数的返回类型,
它使用了 TypeScript 中的映射类型,遍历了输入对象 T 的所有属性,并将它们的类型转换为 ToRef<T[K]>,
这里的 ToRef 是一个类型,它表示将普通值转换为 ref 对象的类型。