Opcjonalne łączenie w łańcuchy ( obj?.param1?.param2
) wydaje się być świetną funkcją i naprawdę chciałem zobaczyć, jak zostało zaimplementowane i wreszcie pozbyć się zagnieżdżonych ifs, dowolnych funkcji i co nie dla tak prostej operacji.
Ale jest problem, to nie działa. Zaktualizowałem do Węzła 12 i nadal pojawia się błąd:
var dude = res?.param?.params[0]
SyntaxError: Unexpected token '.'
lub
var dude = res.param?.params[0]
SyntaxError: Unexpected token '.'
Jaki jest problem?
Czy muszę zmienić konfigurację języka lub pobrać bibliotekę, aby włączyć tę funkcję? A może po prostu jeszcze tego nie ma?
javascript
node.js
almarc
źródło
źródło
Stage 4
. Node.js jeszcze tego nie obsługuje. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Odpowiedzi:
Opcjonalne łączenie łańcuchowe nie jest obecnie obsługiwane w
Node.js
wersji 13, a poniżej będzie obsługiwane wNode.js
wersji 14 i większości przeglądarek w miarę przenoszeniaStage 4
. Obecnie kilka platform obsługuje tę funkcję. Listę platform obsługujących opcjonalne tworzenie łańcuchów można znaleźć w podanym linku . Możesz włączyć opcjonalne za pomocą--harmony
flagi.źródło
Spec dla opcjonalnej funkcji łańcuchowym właśnie awansował do etapu 4 (końcowy) na 22 grudnia 2019 r . Węzeł 12 pojawił się przed końcem specyfikacji - podobnie zresztą jak Węzeł 13.
Według node.green opcjonalne łączenie łańcuchów będzie obsługiwane począwszy od Węzła 14, ale nadal będzie wymagało
--harmony
flagi. (Wydaje się, że jest to sprzeczne z opisem--harmony
flagi Node - funkcje wysyłki V8 nie powinny wymagać flagi - więc nie jestem pewien, co z tego zrobić.) Mimo to, czy potrzebuje flagi, czy nie, nie chciałbym spodziewamy się zobaczyć tę funkcję do czasu wydania Node 14 około kwietnia 2020 r .Jeśli chcesz dzisiaj grać z opcjonalnym łańcuchem, najlepszym rozwiązaniem jest użycie TypeScript (który dodał opcjonalny łańcuch w wersji 3.7 ) lub preprocesora takiego jak Babel .
źródło
Byłem w stanie używać nodejs v13.7.0 z flagą --harmony.
źródło
Opcjonalne łączenie łańcuchowe zostanie wdrożone wraz z
Node.js
wersją 14, która zostanie wydana 20.04.2020. Do tej pory możesz używaćBabel
z@babel/plugin-proposal-optional-chaining
.źródło