/** * 将 DTO 类型函数转换为可选版本 * 返回 T | undefined,在 dto.Object() dto.Array() 中会被识别为可选字段 */ export function toOptional any>( dtoFunc: T ): ReplaceReturnType | undefined> { let optionalFunc = (...args: any[]) => { let dto = (dtoFunc as any)(...args) dto.isOptional = true return dto } return optionalFunc as any } /** * 将 DTO 类型函数转换为可空版本 * 返回 T | null,在 dto.Object() dto.Array() 中会被识别为可选字段 */ export function toNullable any>( dtoFunc: T ): ReplaceReturnType | null> { let optionalFunc = (...args: any[]) => { let dto = (dtoFunc as any)(...args) dto.isNullable = true return dto } return optionalFunc as any } type ReplaceReturnType any, TNewReturn> = (...a: Parameters) => TNewReturn