我正在为 RiotJS 创建 TypeScript 定义。这个库使用嵌套函数,如下所示:
riot.route( args ); // function
riot.route.parser( args ); // function in function
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止所拥有的摘录:
declare module riot
{
export function route( callback : Function ) : void
export function route( to : string ) : void
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何构造“riot.route.parser()”嵌套函数的定义,想知道是否有人对此有任何见解可以分享?
谢谢
这是一个使用内联类型的实现:
declare var riot: {
route: {
(callback: Function): void
parser: {
(args): any;
}
};
}
riot.route(() => null); // function
riot.route.parser(1); // function in function
Run Code Online (Sandbox Code Playgroud)
我建议你把它分解成接口,根据 a.) 目的或 b.) 实际文档如何调用它们来命名它们。
一个让你开始的例子:
interface Riot {
route: {
(callback: Function): void
parser: {
(args): any;
}
};
}
declare var riot:Riot;
riot.route(() => null); // function
riot.route.parser(1); // function in function
Run Code Online (Sandbox Code Playgroud)
对于返回类型/参数数量不变的函数重载,我推荐联合类型:
interface Riot {
route: {
(toOrCallback: string|Function): void
(callback: Function): void
parser: {
(args): any;
}
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |