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"
	}
}

以上。

相关推荐
敲敲了个代码5 分钟前
前端指纹技术是如何实现的?(Canvas、Audio、硬件API 核心原理解密)
前端·javascript·学习·算法·面试·web
Amumu121389 分钟前
Vue简介
前端·javascript·vue.js
放逐者-保持本心,方可放逐10 分钟前
React核心组件 及 钩子函数应用
前端·javascript·react.js·非阻塞更新·延迟更新·同步更新
小宇的天下10 分钟前
Calibre nmDRC-H 层级化 DRC
java·服务器·前端
怒放de生命201018 分钟前
前端子包+docker流水线部署+nginx代理部署
前端·nginx·docker
0思必得027 分钟前
[Web自动化] Selenium浏览器对象属性
前端·python·selenium·自动化·web自动化
小二·32 分钟前
Python Web 开发进阶实战:边缘智能网关 —— 在 Flask + Vue 中构建轻量级 IoT 边缘计算平台
前端·python·flask
是毛毛吧35 分钟前
GitHub热榜----前端已死?AionUi 横空出世:首个开源“生成式UI”框架,让 AI 在运行时“手搓”界面
前端·开源·github
斯普信专业组39 分钟前
ReAct Agent 解析:从理论到实践的高效推理框架
前端·react.js·前端框架
徐同保40 分钟前
开发onlyoffice插件,功能是选择文本后立即通知父页面
开发语言·前端·javascript