gpt4 book ai didi

typescript - 转换具有相同名称的命名空间/模块容器会导致冲突

转载 作者:行者123 更新时间:2023-12-04 17:06:34 25 4
gpt4 key购买 nike

我正在尝试将一些命名空间错误的代码转换到它自己的命名空间中,而不会丢失当前功能(在转换期间)。

原始代码:

// (org)
module General.Admin.Dialogs {
export class LoginDialog {
// details
}
}

最终过渡后:
// (new)
namespace Admin {
export module Dialogs{
export class Login {
}
}
}

但是,我需要通过为一个命名空间/模块中的对象设置别名来保持当前的一些功能正常工作,但是编译器(TypeScript 2.3)由于命名冲突而并不满意(它假设是因为我没有指定根命名空间,它使用当前的根命名空间:
namespace Admin {
export module Dialogs{
export class Login {
}
}
}

module General.Admin.Dialogs {
export var LoginDialog = Admin.Dialogs.Login;
}
Admin.Dialogs.Login编译器假定在 General (旧)模块/命名空间而不是 Admin.Dialogs (新)在上面声明。有什么我可以使用的魔法来让它工作吗?

最佳答案

我实际上在编写问题时解决了它,但我认为可能有其他更好的方法,或者这可能会帮助遇到同样困难的其他人,所以这是我的答案。由于转换完成后我必须再次触摸这个文件,我只是添加了另一个中间模块来解决命名冲突(hacky,但是中间模块也会被删除所以没什么大不了的)。

namespace Admin {
export module Dialogs{
export class Login {
}
}
}

module AdminTransition {
export var LoginDialog = Admin.Dialogs.Login
}

module General.Admin.Dialogs {
export var LoginDialog = AdminTransition.LoginDialog;
}

关于typescript - 转换具有相同名称的命名空间/模块容器会导致冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53161917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com