Vant 按需引入导致 Typescript,eslint 报错问题

目录

  • 1,按需引入问题
  • [2,Typescript 报错解决](#2,Typescript 报错解决)
  • [3,eslint 报错解决](#3,eslint 报错解决)

1,按需引入问题

vant4 通过 按需引入的配置 使用组件时,会同时将样式也自动导入。所以可直接使用相关的 API 和组件,不会有问题。比如:

js 复制代码
showToast('提示内容');

但如果在按需引入配置的基础上,又再次导入

js 复制代码
import { showToast } from 'vant';

showToast('提示内容');

同时没有在 src/main.ts 中导入相关样式文件,使用时样式就会出问题

js 复制代码
import "vant/es/toast/style";

解决:2种方式不要混用。

2,Typescript 报错解决

通过按需引入的方式使用相关 API 时,在 .ts 文件中会有如下报错,因为没有显示导入,

一般来说,Typescript 的这个报错,可手动添加类型声明,声明使用了的全局变量即可。

解决

通过 Vite 配置按需引入后,会在项目根目录下生成 auto-imports.d.ts

ts 复制代码
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {
	const showToast: (typeof import("vant/es"))["showToast"];
}

这就是我们需要的类型声明文件,把它添加到 tsconfig.json 中即可。

json 复制代码
{
	// ...
	"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "auto-imports.d.ts"]
}

3,eslint 报错解决

同样的,因为没有显示导入,eslint 检查时也会有如下报错:

解决 :在 .eslintrc.json 中设置全局变量即可。

json 复制代码
{
	// ...
	"globals": {
		"showToast": "readonly"
	}
}

以上。

相关推荐
欧阳天风13 分钟前
分段渲染加载页面
前端·fcp
艾小码14 分钟前
TypeScript在前端的实践:类型系统助力大型应用开发
前端·typescript
今禾15 分钟前
前端工程化的范式革命:从 Webpack 的“全量打包”到 Vite 的“按需编译”
前端·webpack·vite
Cache技术分享16 分钟前
168. Java Lambda 表达式 - 专用比较器
前端·后端
颜漠笑年17 分钟前
前端必看:img标签不可忽视的width与height属性
前端·html
GHOME19 分钟前
Vue2知识点详细回顾(以及自己的一些思考和解答)-2
前端·vue.js·面试
摸着石头过河的石头20 分钟前
大模型时代的前端开发新趋势
前端·javascript·ai编程
Bottle41422 分钟前
ServiceWorker 报 MIME 类型错误
前端
吴楷鹏22 分钟前
如何同时打开多个 Chrome 呢?
前端·chrome
鹏程十八少23 分钟前
5. Android FrameWork之安卓14Activity启动流程 万字长文:从点击图标到Activity.onCreate()的每一行代码
前端