javascript - 如何处理一个项目中多个相同的类?

标签 javascript typescript visual-studio

在 Multi-Tenancy 项目中,租户可以具有不同的 UI 和功能。为此,有一个这样的结构:

TenantA
  SiteHeader.ts (class named SiteHeader)
TenantB
  SiteHeader.ts (class named SiteHeader)
... 20 other tenants

在网页上,.js 声明动态生成(服务器端)对正确租户的引用:

<script src="../{CurrentTenant}/SiteHeader.js"></script>

在同一页面上,Main.ts 需要引用正确的 SiteHeader。因为我不能(也不想)从 'TenantA/SiteHeader' 导入 {SiteHeader}从 'TenantB/SiteHeader' 导入 {SiteHeader} 和另外 20 个,我被迫简单地将其声明为 var,它指向父页面加载的任何 js:

declare var SiteHeader;

但是,它会导致每个 SiteHeader.ts 中出现重复标识符错误。偶尔也会出现在 Main.ts 中。我可以进入命令行并手动编译每个 SiteHeader.ts,但这很麻烦。

遇到这种情况我该如何解决?

这并不重要,尝试将 TypeScript 引入 Visual Studio 2019 中的老式 WebForms 项目。

最佳答案

您可以创建interface SiteHeader并让所有租户执行。但我不确定运行时如何与 <script> 一起工作标签与外部模块相结合。您考虑过internal modules (namespaces)或使用dynamic import() (TypeScript 应该支持)?

关于javascript - 如何处理一个项目中多个相同的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60838083/

相关文章:

reactjs - 在 mobx 中更新状态时组件不会重新渲染

visual-studio - 更改远程桌面键盘快捷方式

node.js - 吉普错误!构建错误 - 如果未定义 npm_config_node_gyp

javascript - 获取刷新 token 不起作用(React.js)

javascript - 将分割三次贝塞尔曲线外推为 1,1

javascript - 如何使用 TypeScript 更改 CSS 中的值?

c# - 如何在 Visual Studio IDE C# 中隐藏跟踪代码?

javascript - 使用 OnClick/A Href 标签显示隐藏的 Tbody 内容

javascript - 单击时,除一名有类(class)的 child 外+使用此

angular - 如何以 Angular 禁用模板驱动表单中的所有字段