是否可以在 TypeScript 中选择祖先命名空间

is it possible to select an ancestor namespace in typescript

提问人:Corno 提问时间:5/16/2023 更新时间:5/22/2023 访问量:28

问:

我生成具有嵌套命名空间的打字稿代码,如下所示:

namespace A {
        export type MyType = number
}

namespace B {
    const myValue: A.MyType = 6

    namespace A {
    }

}

该示例不会编译,因为命名空间“B”中的命名空间“A”在根级别隐藏了命名空间“A”。 有没有办法在不更改任何命名空间名称的情况下访问该根级命名空间“A”?

我试过这个(不起作用):

namespace A {
        export type MyType = number
}

namespace A_root = A //<--not a valid syntax

namespace B {
    const myValue: A_root.MyType = 6

    namespace A {
    }

}

如果无法完成,我将不得不在命名空间的名称(A_0、A_1 等)中添加一个后缀,但这非常丑陋。

TypeScript 嵌套 命名空间

评论

1赞 Aluan Haddad 5/16/2023
使用导入别名。import AAlias = A;
0赞 Corno 5/17/2023
看起来很奇怪,但它确实可以解决问题。如果你创造一个答案,我会接受它。

答:

0赞 Corno 5/22/2023 #1

阿鲁安·哈达德(Aluan Haddad)的评论有一个合适的答案:

使用导入别名。

 import AAlias = A;