Element-plus按需导入后,组件的正确使用和使用组件时TS报错找不到名称“xxxx”
1. 按需导入后使用组件
Element-plus组件库的示例代码中,都import
导入了组件,如:
<template>
<el-button type="primary" @click="openFullScreen2"> As a service </el-button>
</template>
<script lang="ts" setup>
import { ElLoading } from 'element-plus'
const openFullScreen2 = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
})
setTimeout(() => {
loading.close()
}, 2000)
}
</script>
很多人就跟着复制了代码,包含了import语句,然后这时候去看界面,发现样式有问题,这是因为我们手动导入了组件,但没手动导入样式。但我们之前已经配置过按需导入了,那为什么没给我们导入样式呢?
那是因为我们自己手动去导入了组件,导致我们之前的webpack
配置没有生效。所以解决方案就是,直接注释掉import
导入。
如果你项目中使用了
TypeScript
,那么你就会发现第二个问题了:TS报错找不到名称“ElLoading”。
2. TS报错找不到名称XXX
通过配置按需导入,插件会自动为我们生成一个文件auto-imports.d.ts
,这个文件就是组件的TS声明文件,但是项目中的ts配置未加载到这个文件。
解决办法就是所以在tsconfig.json
中的include字段中添加auto-imports.d.ts
就可以了:
"include": [
"auto-imports.d.ts",
]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步