TypeScript tsconfig settings for Node.js 10?

Czy ktoś wie, które target / libs są wymagane dla Node.js v10.x do korzystania z wbudowanego asynchronicznego / oczekującego bez generatorów? Widzę dużo dla node 8, ale nie z node 10.

Author: Linus Unnebäck, 2018-08-06

2 answers

Od węzła.js 10.0.0, 100% ES2018 jest obsługiwane. Jeśli wiesz, że kierujesz tą lub nowszą wersję, optymalna konfiguracja wyglądałaby tak:

  • "module": "commonjs"

    Węzeł.js jest na drodze do dodania ES-Modules, ale na razie będziemy musieli trzymać się CommonJS.

  • "target": "es2018"

    To mówi Typescriptowi, że jest w porządku wyświetlać składnię JavaScript Z FUNKCJAMI z ES2018. W praktyce oznacza to, że będzie to np. obiekt wyjściowy właściwości rest / spread i składnia async / wait zamiast osadzania polyfill.

  • "lib": ["es2018"]

    To mówi Maszynopisowi, że można używać funkcji i właściwości wprowadzonych w ES2018 lub wcześniejszych. W praktyce oznacza to, że można użyć np. Promise.prototype.finally, Array.prototype.includes i String.prototype.padStart.

Pełna konfiguracja będzie więc:

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

Jeśli używasz Node.js 14 możesz zobaczyć moją podobną odpowiedź dla Node.js 14 tutaj

Jeśli jesteś uruchomiony węzeł.js 12 możesz zobaczyć moją podobną odpowiedź dla Node.js 12 tutaj

Jeśli używasz Node.js 8 możesz zobaczyć moją podobną odpowiedź dla Node.js 8 tutaj

 75
Author: Linus Unnebäck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-19 14:03:44

Zgodnie z zalecaną konfiguracją typescript dla węzła 8 , --target ES2017 jest obsługiwany w Node 8.10.0 i nowszych (które zawierają Node 10) i wystarczy przejść przez funkcje asynchroniczne na wyjście bez tłumaczenia ich na generatory.

 7
Author: Matt McCutchen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 22:31:42