Angular5项目导入外部JS文件出现TS2307错误,如何解决?
Angular5调用外部JS函数解决TS2307模块找不到错误
嘿,我来帮你搞定这个问题!你现在的核心问题出在第三步的导入方式上——既然已经通过.angular-cli.json把JS文件作为全局脚本引入,又在typings.d.ts里声明了全局变量,完全不需要再用import语句导入,直接使用全局变量就行。
下面是修正后的完整操作步骤,帮你顺利调用外部JS函数:
第一步保持不变:确认
kia.js放在assets/js/目录下,并且在.angular-cli.json的scripts数组中正确配置路径:"scripts": [ "./assets/js/kia.js" ],👉 重要提醒:修改完
.angular-cli.json后一定要重启ng serve,否则新的配置不会生效!第二步的
typings.d.ts声明是正确的,确保这个文件在src目录下(TypeScript默认会自动扫描该目录下的.d.ts文件):declare var kia: any;第三步修改为:在
detail.component.ts中直接使用kia变量调用它的函数,删除多余的导入语句:// 删掉 import * as variable from 'kia'; 这一行 export class DetailComponent implements OnInit { ngOnInit() { // 直接调用kia里的目标函数,比如: kia.yourTargetFunction(); } }
为什么之前的方法会报错?
你用import是在尝试导入一个标准Node.js模块,但kia.js是作为全局脚本加载到浏览器环境中的,并非模块化的JS文件。通过declare var kia: any,你只是告诉TypeScript“这个全局变量是存在的,不用因为找不到它而报错”,所以直接使用这个全局变量即可。
如果你的kia.js里的函数是挂载在window对象上的,也可以用这种方式调用:
declare var window: any; // 在组件逻辑中调用 window.kia.yourTargetFunction();
内容的提问来源于stack exchange,提问作者Poncelin Juriaan
相关产品推荐
相关产品推荐

