如何在Angular项目中导入custom.js并调用其中的jQuery自定义函数?
在Angular组件中调用custom.js里的全局函数
根据你的配置,你已经把custom.js通过angular.json的scripts数组全局引入了,里面的A()和B()其实是挂载到全局window对象上的全局函数。要在Angular组件里调用它们,有几种简单直接的方式:
方法1:声明全局变量(推荐)
在组件的.ts文件顶部,导入语句之后,先声明这些全局函数的类型,避免TypeScript的未定义报错:
import * as $ from 'jquery'; // 声明全局函数的类型 declare var A: () => void; declare var B: () => void; @Component({ // 你的组件配置 }) export class YourTargetComponent { triggerFunctions() { // 直接调用函数 A(); B(); } }
这样TypeScript就能识别到这两个函数的存在,运行时也能正常执行全局定义的逻辑。
方法2:通过window对象直接调用
因为全局函数本质上是window对象的属性,你也可以直接通过window来调用,不需要单独声明:
import * as $ from 'jquery'; @Component({ // 你的组件配置 }) export class YourTargetComponent { triggerFunctions() { // 用类型断言绕过TypeScript的类型检查 (window as any).A(); (window as any).B(); } }
额外注意点
- 确认
angular.json的scripts数组顺序正确:jquery.min.js要放在custom.js前面,确保你的自定义脚本能正常依赖jQuery(如果有依赖的话)。 - 你的
tsconfig.app.json里types设为空数组是没问题的,只要你已经安装了@types/jquery(能正常导入$说明已经装过了)。
内容的提问来源于stack exchange,提问作者Sunil Kumar
相关产品推荐
相关产品推荐

