在打字稿中为嵌套命名空间创建类型

shy*_*kov 3 javascript typescript typescript-typings

我正在尝试为已经存在的库创建类型定义,并且有问题正确描述其结构。问题是嵌套的命名空间。在 JavaScript 中,我的方法的全名如下所示:

NameSpace1.NameSpace2.NameSpace3.MethodName()
Run Code Online (Sandbox Code Playgroud)

但我无法创建正确的d.ts定义文件...我尝试了不同的组合,其中export interface,export module用于嵌套命名空间...但没有任何效果。唯一不会引发任何错误的结构如下:

declare namespace NameSpace1 {
}
Run Code Online (Sandbox Code Playgroud)

但这还不够……你知道如何在 TypeScript 定义中正确描述这样的嵌套命名空间吗?

Rya*_*ugh 6

declare namespace NameSpace1.NameSpace2.NameSpace3 {
  function MethodName(): void;
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/DefinitelyTyped/DefinitelyTyped上确实有数千个如何编写定义文件的示例;我建议您下次遇到困难时寻找与您所拥有的类似的东西。