Почему необязательная цепочка не работает в моем Node REPL?

Я буквально копирую вставленный код примера из MDN. но необязательная цепочка не будет работать в моем узле (v12.13.0) REPL. Выдает синтаксическую ошибку о том, что точка после вопросительного знака недействительна. В чем дело ? Я уже использовал это выражение в приложении React, и, похоже, оно работает нормально.

const adventurer = {
  name: 'Alice',
  cat: {
    name: 'Dinah'
  }
};


const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined

console.log(adventurer.someNonExistentMethod?.());
// expected output: undefined


person Harsha Limaye    schedule 19.09.2020    source источник


Ответы (1)


Это подходит только для Node 14 под --harmony: Как использовать необязательная цепочка в Node.js 12

Вы можете использовать дополнительный подключаемый модуль для создания цепочек babel, если хотите использовать эту функцию в узле: noreferrer">https://babeljs.io/docs/en/next/babel-plugin-syntax-Optional-Chaining.html

person Patrick Stival Chaerke    schedule 19.09.2020
comment
Спасибо, мне было интересно, почему выражение работало в моем приложении, ориентированном на реакцию, но не в моем узле REPL. Должен быть плагин Babel, который поставляется по умолчанию. - person Harsha Limaye; 19.09.2020
comment
Да, предустановка по умолчанию, которую Babel использует в приложениях, созданных с помощью инструмента cli, допускает дополнительную цепочку. - person Harsha Limaye; 19.09.2020