缺失了 css/less/scss 等被导入的文件的类型声明。
在
tsconfig.json
中的
includes
数组中任意一个路径下,创建任意的类型声明文件,补充 css/less 等样式模块声明,这里以创建
src/typings/index.d.ts
文件,声明 css 模块为例:
type CSSModuleClasses = { readonly [key: string]: string }
declare module '*.module.css' {
const classes: CSSModuleClasses
export default classes
不过,幸运的是,vite 已经内置了大多数类型声明,可以使用三斜线指令导入:
typescript 并不认识 css 文件,使用 es-module 的格式导入一个 css/less/scss 文件是需要类型声明的。
你可以在 node_modules/vite/client.d.ts
文件中找到预设的声明,这也就是上面使用三斜线指令导入其他地方的由来。
为什么会出现这个问题?
如果你是使用官方脚手架工具创建的工程,那是绝对不会有这个问题的。倘若你是使用纯手工的方式初始化一个项目,并安装了 typescript
、vite
包作为开发依赖,那么缺少导入类型定义文件就会报错。
官方 vanilla + ts 模板的类型文件位于 src/vite-env.d.ts
typescript官网:三斜线指令(triple-slash-directives)