代码之家  ›  专栏  ›  技术社区  ›  salezica

typescript:导入内部命名空间

  •  1
  • salezica  · 技术社区  · 7 年前

    我正在使用一个js模块,输入来自 Definitely Typed ,具有以下结构:

    declare namespace Foo {
      interface Bar {}
    }
    
    declare module "abc" {
        function f(): Foo.Bar
    
        namespace f {
        }
    
        export = f;
    }
    

    如何导入 Bar 接口来自 "abc" 是吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   kingdaro    7 年前

    当某些内容没有显式导出时,很可能是打字机的作者希望您不要使用该类型。

    ……也就是说,从技术上讲是有办法的。typescript添加了 ReturnType 输入2.9和条件类型,这样就可以得到函数的返回类型。在这里,您可以这样使用它:

    import f from 'abc'
    
    type Bar = ReturnType<typeof f>
    

    Playground