Bugs inconclusivos do projeto TypeScript React ao compilar o projeto create-react-app

Aug 27 2020

Esta é uma pergunta um pouco incomum, mas estou tendo problemas frequentes com o compilador de texto digitado (ou talvez webpack ou relacionado).

Isso acontece comigo cerca de duas vezes por dia (as mensagens de erro são diferentes a cada vez):

1.) Eu faço alterações normais de código. 2.) Recebo um bug estranho e inexplicável - o mais recente foi:

Linha 0: Erro de análise: não é possível ler a propriedade 'mapa' de indefinido

  1. Obviamente, não há código na linha 0 em nenhum lugar dos meus módulos, exceto para instruções de importação. Mas eu verifico meu arquivo para todos os tipos de .mapinstruções e tento encontrar o bug, reinicio o servidor de desenvolvimento algumas vezes (mesmo erro).
  2. Eventualmente, o bug desaparece misteriosamente - neste caso, eu apenas comentei todas as minhas instruções de importação e descomentei-as logo em seguida, sem alterar mais nada (eu não corrigi o bug acidentalmente).

Isso está acontecendo várias vezes ao dia agora. Eu estava no Typescript 4.0.2, agora fiz downgrade para 3.9.7.

Existe alguma maneira de "redefinir" o compilador (por exemplo, excluir arquivos temporários) que pode resolver isso? Eu realmente não tenho certeza de como fazer isso.

Estou usando o create-react-app com as seguintes dependências:

"dependencies": {
    "@date-io/date-fns": "^1.3.13",
    "@date-io/moment": "^1.3.13",
    "@material-ui/core": "^4.11.0",
    "@material-ui/icons": "^4.9.1",
    "@material-ui/lab": "^4.0.0-alpha.56",
    "@material-ui/pickers": "^3.2.10",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/user-event": "^7.1.2",
    "@types/jest": "^24.0.0",
    "@types/lodash": "^4.14.157",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.41",
    "@types/react-dom": "^16.9.0",
    "@types/react-redux": "^7.1.9",
    "@types/react-router-dom": "^5.1.5",
    "@types/recharts": "^1.8.14",
    "@types/redux-persist": "^4.3.1",
    "@types/styled-components": "^5.1.0",
    "@types/yup": "^0.29.3",
    "axios": "^0.19.2",
    "classnames": "^2.2.6",
    "date-fns": "^2.15.0",
    "formik": "^2.1.5",
    "lodash": "^4.17.15",
    "moment": "^2.27.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-intl": "^5.2.1",
    "react-redux": "^7.2.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "^3.4.1",
    "recharts": "^1.8.5",
    "redux": "^4.0.5",
    "redux-devtools-extension": "^2.13.8",
    "redux-persist": "^6.0.0",
    "redux-thunk": "^2.3.0",
    "styled-components": "^5.1.1",
    "yup": "^0.29.1"
  },
"devDependencies": {
    "@testing-library/react": "^9.5.0",
    "typescript": "^3.9.7"
  }

Meu tsconfig:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react",
    "noImplicitAny": false,
    "baseUrl": "src"
  },
  "include": [
    "src"
  ]
}

Respostas

2 AkshayVijayJain Sep 03 2020 at 04:54

O problema é react-scriptsusar versões mais antigas do eslint. seguir o problema

@typescript-eslint/eslint-plugin": "^2.10.0"
@typescript-eslint/parser": "^2.10.0"

Nota atualizar manualmente os pacotes no projeto não funcionou

react-script também dá erro de dependência de pares

[email protected] requires a peer of typescript@^3.9.2 but typescript@^4.0.2 was installed.

Por agora podemos degradar para typescript@^3.9.2até o react-scriptssuporte de tempotypescript@^4.0