请注明以下案例的类型

时间:2016-03-14 16:38:09

标签: typescript

var zooKeeper = function()
{
    this.status="initialising";
}

zooKeeper.prototype = {
    getCountryByName:function(name) {
        return name;
    },
    getCountryByCode:function(code)
    {
        return code;
    }

}

以上代码是已编写的大型javascript代码的示例。我将代码复制到 .ts 文件并编写 .d.ts 文件,以便我可以在中获取智能感知,类型信息等VSCODE

大多数代码都包含一个充当 函数 的变量,并且包含一些函数的 prototype 对象,如上所述 zooKeeper 分配了 功能 zooKeeper.prototype 包含更多功能。

如何在.d.ts文件中为上述情况编写打字。但是我写Iam不能满足编译器吗?

我试过这个: enter image description here

2 个答案:

答案 0 :(得分:0)

应该这样做。

declare var zooKeeper: () => IZookeeper;
export interface IZookeeper {
    getCountryByName: (name: string) => string;
    getCountryByCode: (code: string) => string;
}

请记住,您的.d.ts文件根本没有实现。它是严格的接口定义。

答案 1 :(得分:0)

您可以在界面上声明呼叫签名:

interface ZooKeeper { (): void; getCountryByName(name: string): string; getCountryByCode(code: string): string; }