web-dev-qa-db-fra.com

Paramètres tscriptfig dactylographiés pour Node.js 10?

Est-ce que quelqu'un sait quelles cibles/bibliothèques sont nécessaires pour que Node.js v10.x utilise le async/wait intégré sans les générateurs? Je vois beaucoup pour le nœud 8 mais pas pour le nœud 10.

9
four43

Depuis Node.js 10.0.0, 100% de ES2018 est pris en charge. Si vous savez que vous ciblez cette version ou une version plus récente, la configuration optimale ressemblerait à ceci:

  • "module": "commonjs"

    Node.js est sur le point d'ajouter des modules ES, mais pour l'instant nous devrons nous en tenir à CommonJS.

  • "target": "es2018"

    Cela indique à TypeScript qu'il est correct de sortir la syntaxe JavaScript avec les fonctionnalités d'ES2018. En pratique, cela signifie que ce sera par exemple les propriétés rest/spread de l'objet en sortie & la syntaxe asynchrone/wait au lieu d'incorporer un polyfill.

  • "lib": ["es2018"]

    Cela indique à TypeScript qu'il est correct d'utiliser les fonctions et propriétés introduites dans ES2018 ou version antérieure. En pratique, cela signifie que vous pouvez utiliser par exemple Promise.prototype.finally, Array.prototype.includes et String.prototype.padStart.

La configuration complète serait donc:

{
  "compilerOptions": {
    "lib": ["es2018"],
    "module": "commonjs",
    "target": "es2018"
  }
}

Si vous utilisez Node.js 8, vous pouvez voir mon réponse similaire pour Node.js 8 ici

10
Linus Unnebäck

Selon configuration TypeScript recommandée pour le noeud 8 , --target ES2017 est pris en charge sur Node 8.10.0 et plus récent (qui comprendrait Node 10), et il suffit de passer par des fonctions asynchrones à la sortie sans les traduire en générateurs.

8
Matt McCutchen