1
resposta

Alguns erros.

Estou recebendo diversos erros e não sei como resolver.

No arquivo app.tsx

import React from 'react';

function App() {
  return (
    <div className="App"> /*  [ts] Cannot use JSX unless the '--jsx' flag is provided. (JSX attribute) className: string*/
      Hello World
    </div>
  );
}

export default App;

No index.tsx

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App'; /* ERRO -> [ts] Module './App' was resolved to 'c:/Users/2120478300031/Desktop/React - escrevendo com TypeScript/alura-studies/src/App.tsx', but '--jsx' is not set. */

const root = ReactDOM.createRoot(
  document.getElementById('root') as HTMLElement
);
root.render(
  <React.StrictMode> /* ERRO -> [ts] Cannot use JSX unless the '--jsx' flag is provided.
const React.StrictMode: React.ExoticComponent<{
    children?: any;
}>*/
    <App /> /* ERRO -> [ts] Cannot use JSX unless the '--jsx' flag is provided. import App*/
  </React.StrictMode>
);

E no arquivo *tsconfig.json *

{ /* ERRO -> [ts] Argument for '--jsx' option must be: 'preserve', 'react-native', 'react'.
JSON schema for the TypeScript compiler's configuration file */
  "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"
  ]
}
1 resposta

Olá!

Eu recebo um erro parecido quando tento usar os arquivos baixados da aula direto. Você tem a pasta 'node_modules' no seu root?

Como o node_modules é um arquivo ignorado pelo github (está presente no gitignore) ele não vai pro github, e quando você baixa ele, você precisa dar um npm install, que dai ele vai ver todas as dependencias escritas no package.json e baixá-las!

Outras coisas que podem ser de acordo com o stackoverflow:

Seu typescript está numa versão mais antiga do que a utilizada pela versão atual do React.

Pra arrumar isso vá em algum arquivos tsx, aperta Ctrl+Shift+P, escreve 'TypeScript: Select a TypeScript Version...' e seleciona 'Use workspace Version'.

Ou, tente reiniciar a IDE.

Ou, se nada disso funcionar, muda a configuração no tsconfig para:

{
  "compilerOptions": {
     ...
    "jsx": "react"
  }
}

fonte do stackoverflow: https://stackoverflow.com/questions/50432556/cannot-use-jsx-unless-the-jsx-flag-is-provided