我觉得我非常接近完成这项工作,但无法完全破解它。
我有这门课:
218
然后我有这个“请求”类型:
export class Container<U extends request> {
#request: U;
constructor(request: U) {
this.#request = request;
}
public TestMethod() {
return this.#request<TestMethodReturnType>({
...
});
}
}
然后是它的单独实现:
export type request = <_T>(options: RequestOpts, data?: { [k: string]: any }) => unknown;
最后,我尝试使用 export function requestImp1<T>(options: RequestOpts, data?: { [k: string]: any }): Ret1<T> {
...
}
export function requestImp2<T>(options: RequestOpts, data?: { [k: string]: any }): Ret2<T> {
...
}
类的实例创建一个对象字典,输入到我的特定实现响应
Container
这一切都有效除了 export const test = {
Container: new Container<typeof requestImp1>(requestImp1),
};
有一个 test.Container.TestMethod
类型,它是从 unknown
扩展的 request
类型获得的。 >