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