【发布时间】:2021-09-11 18:27:56
【问题描述】:
我有多个互相调用的函数:
let config;
let callback;
function setConfig(c) {
config = {};
for(const i of c.items) config.items[i] = getData(i);
return {
setCallback: (cb) => { callback = cb; }
};
}
x.addEventListener("someEvent", () => callback(config));
// usage
setConfig({items: ["a", "b", "c"]}).setCallback(function myCallback(config) {
console.log(config.items["a"]);
console.log(config.items["b"]);
console.log(config.items["c"]);
})
是否可以以setConfig 的c 参数是通用的(取决于实际的配置对象)的方式键入这个,然后自动推断myCallback 的config 参数的类型?
我已经尝试将事件侦听器的添加放入setCallback 函数中,因此我可以为setConfig 携带一个泛型类型,我想在另一个地方执行此操作并且还可以修改@ 987654329@,但仍然保留类型推断。
【问题讨论】:
-
items应该是什么类型?getData()返回什么类型? -
this 是否满足您的需求?如果是这样,我会写一个答案;如果没有,请详细说明缺少什么或不起作用。
标签: typescript typescript-generics