我正在尝试为这个javascript库编写一个打字稿定义文件:https://github.com/CRogers/pun
目前的问题在于函数pun.match
,它将每个其他参数替换为ADT对象或匿名函数。我想在打字稿定义中将其描述为:
export function match<K extends ADT, V>([syntax here for ...: K, () => V]): V;
我怀疑这不太可能。如果不是,我可以做一些解决方法吗?
感谢。
答案 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;