TypeScript 高级类型
工具类型源码
type Partial<T> = { [P in keyof T]?: T[P] }
type Pick<T, K extends keyof T> = { [P in K]: T[P] }
条件类型与 infer
type Return<T> = T extends (...a: any[]) => infer R ? R : never
实战
构造 API 层泛型 Result 与 PageQuery,大幅减少样板代码。
type Partial<T> = { [P in keyof T]?: T[P] }
type Pick<T, K extends keyof T> = { [P in K]: T[P] }
type Return<T> = T extends (...a: any[]) => infer R ? R : never
构造 API 层泛型 Result 与 PageQuery,大幅减少样板代码。