打字稿-将命名空间导入另一个命名空间

Jon*_*amb 3 javascript namespaces typescript

我想知道是否有可能从一个打字稿.d.ts文件中导出名称空间,然后将该名称空间导入另一个.d.ts文件中,以便在名称空间中使用它。

例:

namespace_export.d.ts

export namespace Foo {
    interface foo {
        prop1: string;
    }
}
Run Code Online (Sandbox Code Playgroud)

类型

import { Foo } from './namespace_export'

export namespace Types {
    Foo // <-- This doesn't work but is what I would like
    interface Bar {
        prop2: string
    }
}
Run Code Online (Sandbox Code Playgroud)

测试文件

import { Types } from './types'

function testTypes(type: Types.Foo.foo) {
    console.log(type);
}
Run Code Online (Sandbox Code Playgroud)

Jor*_*lom 5

我也想知道如何实现这一目标。我找到了这个解决方案:

import { Foo as fooAlias } from './namespace_export'
export namespace Types {
  export import Foo = fooAlias;
  interface Bar {
    prop2: string
  }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 ;)

  • 我不明白它是如何工作的),有人可以解释解释器如何理解“导出导入”吗? (5认同)