在 Angular 项目中导入 2 个同名的 JavaScript 函数
Posted
技术标签:
【中文标题】在 Angular 项目中导入 2 个同名的 JavaScript 函数【英文标题】:Import 2 JavaScript functions with the same name in Angular project 【发布时间】:2021-03-25 04:15:54 【问题描述】:我将 javascript 文件导入到 Angular 项目中,如下所示:https://www.truecodex.com/course/angular-6/how-to-use-external-js-files-and-javascript-code-in-angular
一切正常。但是,有一个问题。我导入了 2 个同名的 JavaScript 文件。所以,当我像这样在组件的打字稿中使用它时:
declare const CMenu: any
这两个函数之间存在名称冲突。
有没有一种方法可以导入 JavaScript 文件,只针对一个特定的 Angular 模块。例如,在 Angular.json 中指定要在哪个模块中导入 JavaScript 文件。我实际上有很多使用相同函数名的 JS 文件,我需要使用来自 2 个不同模块的那些(每个模块使用具有相同名称的不同函数)。
【问题讨论】:
【参考方案1】:在需要的页面上,可以用别名导入。
import CMenu as CeeMenu from 'locationA';
import CMenu as CMenu from 'locationB;
declare const a:CeeMenu;
declare const b:CMenu;
这些导入可以合并到一个文件中,使用别名导出它们,因此您可以从一个位置导入它们。
import CMenu as CeeMenu from 'locationA';
import CMenu as CMenu from 'locationB;
export CeeMenu as AA, CMenu as BB;
import AA, BB from 'locationc';
declare const a:AA;
declare const b:BB;
【讨论】:
当我尝试像这样使用导入时:“从 '/../../externalJS/Cmain.js' 导入 CMain 作为 CMain”我收到错误“找不到命名空间 'as'”以上是关于在 Angular 项目中导入 2 个同名的 JavaScript 函数的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular nx 项目中导入 JavaScript 模块
无法在 Angular 项目中导入 socket.io-client
如何使用 Angular cli 在 Angular 2 中导入电子