function load Promise>( loader: F, lazy = false, ) { let data: T | undefined, error: unknown const refresh: (...args: P) => void = (...args) => void loader(...args) .then(d => (data = d)) .catch((e: unknown) => (error = e)) /** * 类型“[]”的参数不能赋给类型“P”的参数。 * "[]" 可赋给 "P" 类型的约束,但可以使用约束 "[]" 的其他子类型实例化 "P"。ts(2345) */ if (!lazy) refresh() return { refresh, data, error } } // { refresh: () => void; data: unknown; error: unknown } load((a?: number, b?: number) => Promise.resolve((a ?? 0) + (b ?? 0))) 我希望 `loader` 函数没有参数列表,或者所有参数都是可选的。 同时返回值的类型应该是 `{ refresh: (a?: number, b?: number) => void, data: number | undefined; error: unknown }`。