关于vue项目前端服务打包出现JSX element implicitly has type 'any' ...问题总结

715 阅读1分钟

前几天日常开发的时候,由于淘宝的镜像地址过期了,所以本地在npmrc文件更新了正确的地址,没想到发布的时候,服务器报错:JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists... 这个报错是由于在开发的时候,部分html内的定义参数(如scope)没有定义类型,但是很奇怪的是本地的tslint检测并没有什么问题,经过一番研究后发现(大佬指点),可能是由于更新了镜像地址,在发布的时候拉取了新的ts包,而ts5以后开始强制校验html定义参数是否有类型。本地包由于有缓存所以本地没有问题。。。。

解决方法是手动生成一个shims-tsx.d.ts文件,并且在里面配置如下代码

declare namespace JSX {
  interface IntrinsicElements {
    [elem: string]: any;
  }
}

最后通过在tsconfig里面配置,如图:

image.png 即可解决报错问题😊,如有错误,欢迎大佬指正。。。