ReactJS TypeScript项目VSCode中无法识别‘cy’的解决求助
在基于NPM和VSCode的ReactJS TypeScript项目中,Cypress测试运行正常,但VSCode始终提示语法错误:Error: Cannot find name 'cy'。已尝试安装eslint-plugin-cypress并配置ESLint扩展,但问题仍未解决。
以下是官方解决方案的具体步骤:
在TypeScript配置中添加Cypress类型声明
在项目根目录的tsconfig.json里,给compilerOptions.types数组加入cypress,让TypeScript识别Cypress的全局类型:{ "compilerOptions": { "types": ["cypress"] } }如果项目有单独的Cypress配置文件(比如
cypress/tsconfig.json),同样需要在该文件中添加上述配置。切换VSCode使用工作区的TypeScript版本
打开VSCode命令面板(快捷键Ctrl+Shift+P或Cmd+Shift+P),输入TypeScript: Select TypeScript Version,选择Use Workspace Version,避免VSCode使用内置旧版本TypeScript导致类型识别异常。重启TypeScript语言服务
打开命令面板,输入TypeScript: Restart TS Server,让TypeScript重新加载配置,确保新的类型设置生效。完善ESLint配置
除了在package.json的eslintConfig中配置,也可以在项目根目录的.eslintrc.json里补充全局环境声明,确保Cypress全局变量被ESLint认可:{ "extends": ["plugin:cypress/recommended"], "env": { "cypress/globals": true } }
内容的提问来源于stack exchange,提问作者mattsmith5

