【发布时间】:2020-11-24 20:04:51
【问题描述】:
我正在缓慢但肯定地将我的代码库迁移到打字稿,但我无法以某种方式将可调用的返回类型推断为其父包装器。为了清楚起见,功能被剥离。看看:
// component.ts
export function Component(name, factory, defaults = {}) {
return (elem, properties) => {
try {
let instance = factory(elemental, settings) || {};
} catch(error) {
}
return instance;
}
}
现在,我使用这个函数来注册 'clickProxy' 组件:
// clickProxy.ts
export default Component('clickProxy', (component, settings) => {
component.el.addEventListener('click', () => {
document.querySelector(settings.target)?.click();
})
return {
customReturnType: true
}
})
但现在如果我执行以下操作,则不会推断出类型 {customReturnType: boolean}(这是我需要泛型或其他解决方案的部分)。
// index.ts
import clickProxy from 'clickProxy';
let nonInferred = clickProxy(document, {
target: '#random'
});
// nonInferred will be `{customReturnType: true}`
非常感谢任何帮助/资源(因为 TypeScript 文档没有说明如何将泛型与可调用对象结合使用)。
【问题讨论】:
-
如果你分享可以在TS游乐场编译的代码会更容易
-
好的,我帮你做吧
标签: typescript