VS2022升级至17.7.x后Yarn自定义目录的@types/jquery无法被TS识别
解决VS2022 17.7.x中TypeScript找不到@types/jquery类型的问题
问题概述
开发TypeScript模块时使用了JQuery<HTMLElement>类型,通过Yarn将@types/jquery安装到自定义目录wwwroot/lib,但升级Visual Studio 2022到17.7.x版本后,TypeScript编译器抛出TS2304: cannot find name 'JQuery'错误,17.6.x版本可正常编译。
解决方案
1. 修正tsconfig.json的类型解析配置
TypeScript默认从node_modules/@types查找类型定义,需手动指定自定义目录:
- 配置
typeRoots指向你的类型文件目录:{ "compilerOptions": { "typeRoots": ["./wwwroot/lib/@types"] } } - 或者仅显式引入jquery类型:
{ "compilerOptions": { "types": ["jquery"] } }
2. 验证@types/jquery安装完整性
确认wwwroot/lib/@types/jquery目录存在,且包含index.d.ts等核心类型文件,若文件缺失,重新执行安装命令:
yarn add @types/jquery --dev
3. 调整VS2022的TypeScript构建设置
打开项目属性 → 「TypeScript Build」:
- 将「Module Resolution」设置为
Node或NodeNext,确保编译器能正确解析自定义模块路径。 - 检查「TypeRoots」输入框内容,确保和tsconfig.json中的配置一致,避免VS覆盖配置文件设置。
4. 清理缓存并重启VS
- 删除项目根目录下的
.vs隐藏文件夹。 - 打开「工具」→「选项」→「项目和解决方案」→「Web Package Management」→「Package Cache」,点击「Clear Cache」。
- 重启Visual Studio后重新构建项目。
5. 添加模块路径映射(可选)
若上述方法无效,在tsconfig.json中配置baseUrl和paths:
{ "compilerOptions": { "baseUrl": "./wwwroot/lib", "paths": { "@types/*": ["@types/*"] } } }
内容的提问来源于stack exchange,提问作者Ehsan Vali
相关产品推荐
相关产品推荐

