No se puede usar JSX a menos que se proporcione el indicador '--jsx'

Resuelto AJDEV asked hace 6 años • 34 respuestas

He buscado un poco a mi alrededor una solución a este problema. Todos sugieren agregarlo "jsx": "react"a su archivo tsconfig.json. Lo cual he hecho. Otra era añadir "include: []", cosa que también he hecho. Sin embargo, sigo recibiendo el error cuando intento editar .tsxarchivos. A continuación se muestra mi archivo tsconfig.

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "allowJs": true,
        "checkJs": false,
        "jsx": "react",
        "outDir": "./build",
        "rootDir": "./lib",
        "removeComments": true,
        "noEmit": true,
        "pretty": true,
        "skipLibCheck": true,
        "strict": true,
        "moduleResolution": "node",
        "esModuleInterop": true
    },
    "include": [
        "./lib/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

Cualquier sugerencia sería útil. Estoy usando babel 7 para compilar todo el código con los ajustes preestablecidos env, reaccionar y mecanografiado. Si necesitan más archivos para ayudar a depurar esto, háganmelo saber.

AJDEV avatar May 20 '18 14:05 AJDEV
Aceptado

Cada vez que ejecuto , anula todo lo que npm startconfiguro para que sea compatible con la transformación JSX en React 17.{jsx: ...}react-jsx

The following changes are being made to your tsconfig.json file:
  - compilerOptions.jsx must be react-jsx (to support the new JSX transform in React 17)

El problema es que VSCode usa una versión anterior de mecanografiado (4.0.3), mientras que la versión mecanografiada incluida con el proyecto es (4.1.2).

Lo siguiente funcionó para mí:

  1. Vaya a la paleta de comandos CTRL+ Shift+ P (O + Shift+ Pen Mac).
  2. Elija "TypeScript: seleccione una versión de TypeScript ...".
  3. Elija "Usar versión del espacio de trabajo".

Barra de estado de VSCode

Paleta de comandos VSCode

Versión del espacio de trabajo de TypeScript

PD: Esta opción no se muestra a menos que estés en algún archivo .tsx (gracias @awran5 por tu comentario y buena captura).

Mahmoud avatar Nov 23 '2020 13:11 Mahmoud

No se puede usar JSX a menos que se proporcione el indicador '--jsx'

Reinicie su IDE. A veces, los cambios de tsconfig.json no se detectan inmediatamente.

basarat avatar May 21 '2018 01:05 basarat

Para quien lea, vaya a tsconfig.json y cambie esa línea de react-jsxa react:

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

Bonificación: intente también configurar la versión IDE TS a la última (atm 4.2), en vscode CMD + SHIFT + P y cámbiela desde allí.

Mel Macaluso avatar Nov 21 '2020 18:11 Mel Macaluso