Erreur JSX dans TypeScript : le flag --jsx et comment la corriger

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

«Cannot use JSX unless the '--jsx' flag is provided» — qu'est-ce que c'est que cette bête ?

\n

Imaginez : vous écrivez avec enthousiasme votre première application React en TypeScript. Le code est parfait, les composants sont bien pensés, l'ambiance est au beau fixe. Vous lancez la compilation — et soudain, vous voyez ce message froid et effrayant :

\n
Cannot use JSX unless the '--jsx' flag is provided.
\n

Ça vous dit quelque chose ? Ne vous inquiétez pas, vous n'êtes pas seul. Cette erreur est l'une des questions les plus populaires sur Stack Overflow avec des milliers de vues. Mais, comme toute énigme, elle a une solution simple et élégante. Dans cet article, nous ne nous contenterons pas de corriger l'erreur, mais nous comprendrons pourquoi elle se produit et comment configurer TypeScript pour travailler avec JSX une fois pour toutes.

\n

D'ailleurs, si vous débutez tout juste votre parcours dans le monde de TypeScript et React, je vous recommande également de consulter nos articles sur les bases de TypeScript — cela vous aidera à éviter de nombreux pièges dès le départ.

\n\n

Pourquoi TypeScript râle-t-il sur le JSX ?

\n

Décortiquons la nature de cette erreur. TypeScript est un langage strict qui ne comprend pas la syntaxe HTML-like du JSX par défaut. Lorsque vous écrivez :

\n
const element = <h1>Bonjour, le monde !</h1>;
\n

TypeScript ne voit pas un code familier, mais quelque chose d'étranger. Pour expliquer au compilateur que ces chevrons ne sont pas une erreur, mais une partie de votre composant React, vous devez explicitement spécifier le flag --jsx. C'est comme donner un interprète à TypeScript : « Écoute, ces constructions sont du JSX valide, ne les touche pas, traite-les correctement ».

\n

L'erreur se produit dans trois cas typiques :

\n
    \n
  • Nouveau projet — vous avez oublié de configurer tsconfig.json pour fonctionner avec React ;
  • \n
  • Migration depuis JavaScript — vous traduisez un projet en TypeScript, mais vous n'avez pas mis à jour la configuration ;
  • \n
  • Utilisation de fichiers .tsx — vous avez créé un fichier avec l'extension .tsx, mais le compilateur ne sait pas quoi en faire.
  • \n
\n

Bonne nouvelle : la correction prend moins d'une minute. Mauvaise nouvelle : si vous ne savez pas où chercher, vous pouvez y passer des heures. Corrigeons cela une fois pour toutes.

\n\n

Solution étape par étape : configuration de tsconfig.json

\n

La méthode la plus correcte et recommandée est d'ajouter la configuration JSX dans votre tsconfig.json. Ce fichier est le cerveau de votre projet TypeScript. C'est ici que nous dirons au compilateur comment traiter le JSX.

\n\n

Étape 1 : Ouvrez tsconfig.json

\n

Trouvez le fichier tsconfig.json à la racine de votre projet. S'il n'existe pas, créez-le. Cela peut être fait avec la commande :

\n
npx tsc --init
\n

Cette commande générera un fichier de configuration de base avec de nombreuses options commentées. Ne paniquez pas — nous allons changer une seule ligne.

\n\n

Étape 2 : Ajoutez l'option jsx

\n

À l'intérieur de l'objet compilerOptions, ajoutez (ou décommentez) la ligne :

\n
{\n  "compilerOptions": {\n    "jsx": "react-jsx",\n    // autres paramètres...\n  }\n}
\n

Notez que la valeur "react-jsx" est le standard moderne pour React 17+ et React 18. Si vous utilisez une ancienne version de React (antérieure à 17), vous pouvez spécifier "react". Mais je recommande vivement "react-jsx" — il produit un code plus optimisé et ne nécessite pas d'importer React dans chaque fichier.

\n\n

Étape 3 : Sauvegardez et relancez la compilation

\n

Après avoir sauvegardé les modifications, l'erreur devrait disparaître. Relancez la construction :

\n
npm run build\n# ou\nnpx tsc
\n

Si vous avez tout fait correctement, le compilateur cessera de râler et votre application démarrera.

\n\n

Méthodes alternatives : pour les utilisateurs avancés

\n

Parfois, vous devez rapidement vérifier une hypothèse ou exécuter un script d'un seul fichier. Dans ces cas, vous pouvez utiliser le flag de ligne de commande :

\n
npx tsc --jsx react-jsx app.tsx
\n

C'est une solution temporaire — elle ne modifie pas les paramètres globaux du projet.

Blogs

Book Recommendations