请考虑以下TypeScript:
export namespace Test {
export const test = "test";
}
export namespace Wrapper {
export namespace Test {
export const value = Test.test; // "<script>".Wrapper.Test has no exported member 'test'.
}
}
由于 TypeScript 将编译成 JavaScript 的方式,
Wrapper
中的第二个 Test
声明将创建一个新的作用域,在该作用域中,Test
仅引用自身。根据 TypeScript 类型检查器的说法,顶层的 Test
在该作用域内不可用。我正在从另一种语言生成 TypeScript,其中这种名称空间冲突并不是什么大问题。然而,在 TypeScript 中,它会导致编译错误。应用程序仍然运行,因此这似乎是 TypeScript 类型检查问题,而不是真正的 JavaScript 运行时问题。
在 TypeScript 中是否有任何已知的解决方法?
我在Gluon issue中建立了一个复制集。