Angular项目遇TS2688错误:找不到'twitter-text'类型定义文件
解决 TS2688: Cannot find type definition file for 'twitter-text' 错误
嘿,我之前也碰到过这种诡异的类型错误——明明自己项目里完全没用到某个包,TypeScript却偏偏报它的类型找不到。针对你这个情况,大概率是依赖链或者配置的问题,试试下面这些步骤:
先搞清楚谁在偷偷用
twitter-text
打开终端跑一下npm ls twitter-text(用yarn的话就是yarn list twitter-text),看看是不是某个第三方依赖间接引入了这个包。很多时候这种莫名其妙的报错都是依赖的依赖搞的鬼,找到源头后就能针对性处理了。调整TypeScript的类型扫描范围
打开你的tsconfig.json,看看compilerOptions里的types字段:- 如果这个字段存在,检查里面有没有不小心加了
twitter-text,有的话删掉就行; - 如果没有
types字段,TypeScript会默认扫描node_modules/@types下所有类型包,这时候你可以手动添加types数组,只列出你项目实际需要的类型(比如["node", "@angular/core"]),这样就能避免扫描到无关的类型定义了。
- 如果这个字段存在,检查里面有没有不小心加了
清理依赖缓存,重新安装
有时候依赖缓存损坏也会导致奇怪的问题,试试这套操作:rm -rf node_modules rm package-lock.json # yarn用户删yarn.lock npm install # 或者 yarn install重新安装后很多莫名其妙的问题都会消失。
检查Webpack的TypeScript loader配置
因为你改用Webpack处理TypeScript了,确认一下ts-loader或者awesome-typescript-loader的配置里有没有奇怪的typeRoots设置,要是这个路径错了,TypeScript可能会去不该找的地方搜类型定义。应急方案:临时跳过库类型检查
如果上面的方法都没解决,你可以在tsconfig.json的compilerOptions里加一行:"skipLibCheck": true这会让TypeScript跳过所有第三方库的类型检查,能快速绕过这个错误,但这只是权宜之计,毕竟可能会隐藏其他真正的类型问题,找到根源后记得改回来哦。
内容的提问来源于stack exchange,提问作者codeepic
相关产品推荐
相关产品推荐

