Typescript接口,函数和命名空间都具有相同的名称。哪个正在导出?

时间:2018-01-18 05:44:41

标签: typescript module definitelytyped typescript-definitions .d.ts

In the Typescript definition file (DefinitelyTyped)我正在研究,有一个接口,一个函数和一个名称空间都具有完全相同的名称:twilio

这是样本,来自文件的前几行:

declare interface twilio {
  (sid?: string, tkn?: string, options?: twilio.ClientOptions): twilio.RestClient
}

declare function twilio(sid?: string, tkn?: string, options?: twilio.ClientOptions): twilio.RestClient;

declare namespace twilio {
 ....

然后在文件底部一直显示

export = twilio;

哪一个是出口?界面?功能?命名空间? 这有什么用呢?如何在同一范围/命名空间中将多个事物命名为完全相同的nae?

2 个答案:

答案 0 :(得分:0)

他们刚刚创造了一个跑步运动包的东西。没关系,不是你的代码。基本上他们出口的东西都是以上所有。就像你可以在javascript中做到这一点:

function foo() {};
foo.bar = function() {};

查看此ts playground code

答案 1 :(得分:0)

基本上,它定义了一些与上述内容同时存在的东西。我添加了一个新答案给你一个link to ts playground,我希望它对你有帮助。