如何在TypeScript中的rest参数之后指定回调函数?

时间:2018-08-19 13:43:23

标签: javascript typescript

我有一个函数可以接收任意数量的字符串,如本例所示:

function foo(...strings, callback);

如何在打字稿中指定其类型?我权衡了以下替代方案:

  1. functio foo(...strings: string, callback: (err: Error, res: any) => void);

这不好,因为其余参数必须在最后。

  1. foo(...strings: any);

这是一个折衷方案,可以编译,但需要放弃类型检查。

  1. foo(...strings: string|((err: Error, res: any) => void));

这有点真实,但是非常不可读,我认为我在任何项目中都没有看到它。

是否有解决此问题的最佳做法?应该考虑哪些权衡?

1 个答案:

答案 0 :(得分:0)

这是不可能的,您必须更改“订单样式”,并将回调函数放在其余参数之前。与您列出的其他尴尬解决方法相比,这将是更好(更易读且更类型安全)的解决方案。