使用namespace作为typescript中的类型

时间:2017-03-15 16:48:13

标签: typescript

我已经安装了谷歌地图的类型定义,声明了这样的命名空间:

namespace google.maps {
  export class Map {
    // ...
  }

  // ...
}

因此,如果我只是在全球范围内使用API​​,它的工作效果非常好:

const map = new google.maps.Map();

对于单元测试,我不想全局访问API,而是注入它。但似乎我无法通过类型google.map

键入变量

所以这不起作用:

function mapFactory(api: google.maps) {
    return new api.Map();
}

如何将命名空间用作类型的任何解决方案?

1 个答案:

答案 0 :(得分:28)

尝试:

function mapFactory(api: typeof google.maps) {
    return new api.Map();
}