/** * 获取()=>Promise 的返回值类型 */ export type PromiseReturnType = T extends (...arg: any) => Promise ? U : any; /** * 获取数组元素的类型 普通函数的返回类型 Promise的返回类型 ()=>Promise的返回类型 */ export type Unpacked = T extends null | undefined ? T : T extends (...args: any[]) => Promise ? U : T extends (infer U)[] ? U : T extends Promise ? U : T extends (...args: any[]) => infer U ? U : T;