TypeScript引入classnames提示找不到声明文件,已装@types/classnames无效如何解决?
解决方案
- 卸载冗余类型包
classnames v2.3.0及以上版本已经内置了官方TypeScript类型定义,你额外安装的@types/classnames会和内置类型产生冲突,先执行卸载命令:
npm uninstall @types/classnames
你之前遇到的@types/module-name安装404报错属于正常现象,这是因为module-name是通用占位符,使用时需要替换为实际的包名,无需额外处理。
2. 删除自定义的classnames声明
把你之前手动创建的包含declare module 'classnames';内容的.d.ts文件删除,避免和内置类型冲突。如果有其他自定义声明需求,需要将你的声明文件路径加入tsconfig.json的include数组中,比如你在根目录创建了global.d.ts,配置修改如下:
{ "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx", "global.d.ts" ] }
- 清除缓存重启服务
旧的缓存可能导致配置不生效,按顺序执行以下操作:
- 删除项目根目录的
node_modules文件夹和package-lock.json文件 - 重新安装依赖:
npm install - 带清除缓存参数启动开发服务:
npm run dev -- --clean
操作完成后类型报错就会消失。
内容的提问来源于stack exchange,提问作者Demian
相关产品推荐
相关产品推荐

