web-dev-qa-db-fra.com

Prise en charge de l'opérateur de chaînage en option dans VSCode

React Native 0.56 fournit un support natif de Optional Chaining Operator c'est à dire ?.

Cependant, la dernière version stable de VS Code ne peut pas reconnaître cette syntaxe et générer une erreur de validation TypeScript:

[ts] Expression expected.

alors qu'aucune erreur de complie-time ou eslint n'a été levée.

Comment puis-je faire pour le réparer?


Mise à jour du 11/12/2019:

Le chaînage optionnel est officiellement supporté par TypeScript depuis 3.7! ????

Si vous rencontrez toujours cette erreur, la bibliothèque TypeScript livrée avec votre VSCode est probablement <3.7.

Vous pouvez le corriger simplement en installant la dernière version de TypeScript (> = 3.7) dans votre espace de travail. (par npm ou fil comme devs deps)

Ouvrez ensuite la palette de commandes, saisissez tstv et changez la version TypeScript utilisée pour les fonctionnalités JS et TS de VS Code's Version à Version de Workspace (assurez-vous que c'est> = 3.7) et le tour est joué!

Ceci est certainement une fonctionnalité impressionnante, merci à tous et bon piratage!

39
kirkcola

VS Code 1.41 prend en charge le chaînage facultatif dans les fichiers JavaScript et TypeScript. Cette prise en charge inclut la coloration syntaxique et IntelliSense.

Si vous utilisez VS Code 1.41+ et que le chaînage facultatif ne fonctionne pas comme prévu, essayez:

  • Vérifiez vos extensions installées. Certains d'entre eux peuvent ne pas encore comprendre le chaînage facultatif, ce qui pourrait entraîner des erreurs ou une mauvaise coloration syntaxique

  • Si vous êtes en utilisant une version TypeScript de l'espace de travail , assurez-vous qu'il s'agit bien de TypeScript 3.7+

36
Matt Bierner

Vous pouvez installer JavaScript et TypeScript Nightly , puis rouvrir VSCode.

12
icbbetter

Je viens de résoudre le problème de désactivation de la validation js/ts dans les paramètres vscode json:

"javascript.validate.enable": false

Vous mon besoin d'installer eslint-plugin-babel pour les règles eslint.

{
  "plugins": [
    "babel"
  ],
  "rules": {
    "babel/new-cap": 1,
    "babel/camelcase": 1,
    "babel/no-invalid-this": 1,
    "babel/object-curly-spacing": 1,
    "babel/quotes": 1,
    "babel/semi": 1,
    "babel/no-unused-expressions": 1,
    "babel/valid-typeof": 1
  }
}
1
yotke

Cela m'arrivait encore jusqu'à ce que je désinstalle l'extension JavaScript et TypeScript IntelliSense

Alors oui, vérifiez la désinstallation des anciens plugins si vous rencontrez toujours ce problème. Vous pouvez également essayer la version vscode insiders et vérifier si cela fonctionne dans celle-ci. Cela a fonctionné pour moi sans faire de changement.

0
DarkCrazy