我有错误住宅 '申请' 的类型不存在 'T [K]'在我的主要功能我可以告诉我的泛型,关于它应该只是一个函数?
const main = <T>(root: T) => <K extends keyof T>(method: K, ...args: any[]) => {
root[method].apply(this, ...args);
};
诚实除了作为一个例子:
const main = <T>(root: T) => <K extends keyof T>(method: K, ...args: any[]) => {
(<any>root[method]).apply(this, ...args);
};
UPDATE
我可能没有这么说,但我的意思是这个例子...
UPDATE 2
用级别3和方法级别4/5(只)的第二个呼叫 - works perfectly!
如果我添加另一种类型的6级(数字) - everything collapses :(
而且它是非常有趣的是为什么第一次打电话总是错误?
在这种情况下,如果您运行 - 一切正常,结果是“富”和“酒吧”,但是编译器打字稿产生一个错误
我不认为你需要一个通用的函数。看来你要找的是非常具体的。有什么我失踪的? –
获得以下内容。 在新示例中,UPDATE 2 –
您的结构非常具体。通用解决方案是没有意义的。你将最终以太多的工作方式结束,最终会出现一个难以理解的解决方案,它可能包含比所需更多的代码,并且性能会比特定的解决方案差。我强烈建议你放弃这个想法。 –