TypeScript 3.7.2 - La prise en charge de la syntaxe expérimentale 'optionalChaining' n'est pas actuellement activée


12

Dans mon projet, j'utilise TS 3.7.2 qui devrait prendre en charge le chaînage facultatif. Mais quand j'essaye de l'utiliser comme ça: const state = urlParams.state?.toString()j'obtiens l'erreur:

La prise en charge de la syntaxe expérimentale «optionalChaining» n'est pas actuellement activée

Ajoutez @ babel / plugin-proposition-optional-chaining ( https://git.io/vb4Sk ) à la section 'plugins' de votre configuration Babel pour activer la transformation.

J'ai vérifié les notes de publication et je n'ai vu aucune exigence concernant l'ajout d'options tsconfig pour cette fonctionnalité.

Je me demande si j'ai besoin du plugin et de la configuration babel lorsque j'utilise déjà TS, et comment dois-je corriger l'erreur?


1
sonne comme si vous utilisez create-react-app. La dernière fois que j'ai vérifié cela ne supporte pas optionalChaining dans la configuration babel qu'il utilise. Consultez ce numéro pour les mises à jour: github.com/facebook/create-react-app/issues/7940
Ben Clayton

@BenClayton merci! J'espère qu'ils publieront cette mise à jour dès que possible. Pourriez-vous poster votre commentaire comme réponse, afin que je puisse le marquer comme résolu?
flppv

J'ai ajouté une réponse
Ben Clayton

Réponses:


12

Il semble que vous utilisiez une ancienne version de create-react-app.

Les versions antérieures à la v3.3 ne prennent pas en charge optionalChaining dans la configuration babel qu'il utilise.

Le support a été ajouté dans CRA v3.3. Voir les autres réponses pour savoir comment mettre à niveau.


9

Résolu avec une version de l'ARC v3.3.0 . Si quelqu'un a toujours la même erreur que dans le titre, assurez-vous que vous avez mis à jour le react-scriptspackage.


2
La mise à jour est également assez rapide et facile:yarn add --exact react-scripts@3.3.0
contre-être le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.