Vue3 + TypeScript引入l-pagination报错找不到模块及对应类型声明怎么解决
报错原因
该报错和插件的运行逻辑无关,核心是你开发的l-pagination是基于Vue2开发的纯JavaScript插件,未内置TypeScript类型声明文件。
你提到的其他项目可以正常运行,大概率是这些项目没有开启TS类型校验,所以不会触发类型检查提示;而报错的Vue3+TS项目开启了严格类型校验,引入无类型声明的第三方包时就会抛出该错误。
临时解决方案(无需修改插件,仅针对当前报错项目)
直接在项目的shims-vue.d.ts文件中追加一行模块声明即可:
declare module 'l-pagination'
添加后TS会将该模块默认识别为any类型,不会再抛出找不到模块的错误,也不影响插件的正常运行。
插件适配优化方案(支持所有TS项目直接引入)
如果要让所有TS项目都可以直接引入该插件不报错,可以给插件补充类型声明,操作步骤如下:
- 在插件的根目录新建
index.d.ts类型声明文件,根据插件的实际导出内容编写类型定义,基础示例参考:
import type { Plugin } from 'vue' // 若需要同时兼容Vue2/Vue3的类型可以分别导出,或者按你插件的实际导出内容调整 declare const LPagination: Plugin export default LPagination // 如有props、方法、具名导出等内容,也可以在该文件中补充对应的类型定义
- 在插件的
package.json配置文件中新增types字段,指向你编写的类型声明文件:
{ "types": "./index.d.ts" }
发布插件新版本后,所有TS项目引入都不会再触发该类型报错。
内容的提问来源于stack exchange,提问作者lKotan
相关产品推荐
相关产品推荐

