You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译App.tsx自动生成的App.js出现ESLint错误如何解决?

问题

用TypeScript重构项目时,编译简单组件App.tsx后,自动生成的App.js触发ESLint错误:

[eslint]
src/App.js
Line 1:1: 'use strict' is unnecessary inside of modules
Line 1:1: Strings must use singlequote

相关代码文件:

App.tsx

export default function App() { return <div>it works!</div> }

tsconfig.json

{
  "compilerOptions": {
    "target": "es2016",
    "module": "commonjs",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true,
    "jsx": "react-jsx"
  },
  "include": ["src", "src/@types"]
}

package.json

{
  "name": "my_gallery",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^6.4.2",
    "@fortawesome/free-brands-svg-icons": "^6.4.2",
    "@fortawesome/free-regular-svg-icons": "^6.4.2",
    "@fortawesome/free-solid-svg-icons": "^6.4.2",
    "@fortawesome/react-fontawesome": "^0.2.0",
    "@reduxjs/toolkit": "^1.9.7",
    "@tanstack/react-query": "^4.36.1",
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "axios": "^1.5.1",
    "eslint-config-airbnb-typescript": "^17.1.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-paginate": "^8.2.0",
    "react-redux": "^8.1.3",
    "react-router-dom": "^6.16.0",
    "react-scripts": "5.0.1",
    "react-select": "^5.7.7",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/eslint-parser": "^7.22.15",
    "@types/jest": "^29.5.6",
    "@types/node": "^20.8.8",
    "@types/react": "^18.2.31",
    "@types/react-dom": "^18.2.14",
    "eslint": "^8.52.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-plugin-import": "^2.29.0",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-react": "^7.33.2",
    "typescript": "^5.2.2"
  }
}

解决方法

1. 排除编译生成的JS文件

在项目根目录创建.eslintignore文件,添加规则跳过TS编译产物:

src/**/*.js

让ESLint只检查TS/TSX源文件,不处理自动生成的JS文件。

2. 关闭TS自动添加use strict

修改tsconfig.json的compilerOptions,添加noImplicitUseStrict配置:

{
  "compilerOptions": {
    // 原有配置保留
    "noImplicitUseStrict": true
  }
}

禁止TypeScript在模块中自动插入'use strict'语句,解决第一个错误。

3. 适配TypeScript的ESLint规则

修改package.json中的eslintConfig,切换为Airbnb TypeScript规则集:

"eslintConfig": {
  "extends": [
    "react-app",
    "airbnb-typescript",
    "react-app/jest"
  ],
  "parserOptions": {
    "project": "./tsconfig.json"
  }
}

确保ESLint规则与TypeScript项目兼容,避免对编译产物的无效检查。

4. 清理已生成的JS文件

删除src目录下已存在的App.js文件,后续TS编译会自动处理,且ESLint不再扫描这类文件。

内容的提问来源于stack exchange,提问作者2022.A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:20:32