多类型休息参数类型定义

时间:2014-08-10 22:47:10

标签: typescript

我正在尝试为这个javascript库编写一个打字稿定义文件:https://github.com/CRogers/pun

目前的问题在于函数pun.match,它将每个其他参数替换为ADT对象或匿名函数。我想在打字稿定义中将其描述为:

export function match<K extends ADT, V>([syntax here for ...: K, () => V]): V;

我怀疑这不太可能。如果不是,我可以做一些解决方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

  

我怀疑这不可能。如果不是,我可以做一些解决方法吗?

不可能。解决方法使用any[]

export function match(...args:any[]): any;

或者,您可以为前几(n)个案例定义它:

declare function match<K extends ADT, V>(k: K, v:() => V, k2?: K, v2?:() => V, k3?: K, v3?:() => V): V;