TypeScript - 构建.d.ts定义文件 - 嵌套函数。

时间:2015-03-25 09:47:35

标签: typescript

我正在为RiotJS创建TypeScript定义。这个lib使用嵌套函数,如:

riot.route( args ); // function
riot.route.parser( args ); // function in function

以下是我到目前为止的摘录:

declare module riot
{
    export function route( callback : Function ) : void
    export function route( to : string ) : void
}

我不知道如何构建“riot.route.parser()”嵌套函数的定义,并想知道是否有人有任何见解可以分享这个?

谢谢

1 个答案:

答案 0 :(得分:3)

以下是使用内联类型的实现:

declare var riot: {
    route: {
        (callback: Function): void
        parser: {
            (args): any;
        }
    };

}

riot.route(() => null); // function
riot.route.parser(1); // function in function

我建议你把它分解成接口,根据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

更新

对于函数重载,返回类型/参数个数不变,我建议使用联合类型:

interface Riot {
    route: {
        (toOrCallback: string|Function): void
        (callback: Function): void
        parser: {
            (args): any;
        }
    };

}