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.
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
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.