React JS结合TypeScript时src子文件夹TSX文件不生效问题
问题场景
React + TypeScript 项目中,src 根目录下的 .tsx 文件可正常触发TypeScript类型校验,src/components 等子目录内的 .tsx 文件TypeScript校验不生效。
当前使用的tsconfig配置如下:
tsconfig.json:
{ "compilerOptions": { "target": "es5", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, "jsx": "react-jsx" }, "include": ["src"] }
排查修复步骤
按优先级逐一验证即可解决:
- 重启编辑器TS服务:使用快捷键
Ctrl+Shift+P(macOS为Cmd+Shift+P)唤起命令面板,执行TypeScript: Restart TS Server,等待服务重载完成后重新检查子目录文件校验状态。大部分偶发的识别异常重启服务即可解决。 - 清理子目录冗余配置:检查
components等子目录下是否存在独立的tsconfig.json/jsconfig.json文件,子目录下的配置文件会覆盖根目录配置,直接删除多余的子目录配置文件即可。 - 显式配置include匹配规则:将根目录tsconfig的
include字段修改为"include": ["src/**/*"],明确声明递归匹配src下所有层级的文件,兼容不同TS版本对目录路径的解析逻辑。 - 校验文件命名:确认子目录下带JSX语法的文件后缀为
.tsx,若错写为.ts或.jsx,TypeScript不会按TSX规则做类型解析。 - 补全CRA项目类型声明文件:如果是Create React App搭建的项目,确认
src根目录存在react-app-env.d.ts文件,缺失该文件会导致类型加载异常,文件内容如下:
/// <reference types="react-scripts" />
内容的提问来源于stack exchange,提问作者Ariyan Ashfaque
相关产品推荐
相关产品推荐

