我有一个函数可以接收任意数量的字符串,如本例所示:
function foo(...strings, callback);
如何在打字稿中指定其类型?我权衡了以下替代方案:
functio foo(...strings: string, callback: (err: Error, res: any) => void);
这不好,因为其余参数必须在最后。
foo(...strings: any);
这是一个折衷方案,可以编译,但需要放弃类型检查。
foo(...strings: string|((err: Error, res: any) => void));
这有点真实,但是非常不可读,我认为我在任何项目中都没有看到它。
是否有解决此问题的最佳做法?应该考虑哪些权衡?
答案 0 :(得分:0)
这是不可能的,您必须更改“订单样式”,并将回调函数放在其余参数之前。与您列出的其他尴尬解决方法相比,这将是更好(更易读且更类型安全)的解决方案。