#typescript #babeljs #optional-chaining
Вопрос:
У меня есть строка кода, которая выглядит примерно так:
return someObj.getSomething(param).doSomethingElse().key.anotherKey
Все мои модульные тесты на шутки проходят.
Чтобы быть немного безопаснее, я добавил необязательную цепочку к этой строке, так что теперь это выглядит так:
return someObj?.getSomething(param)?.doSomethingElse()?.key?.anotherKey
Как только я это сделаю, соответствующий набор тестов приведет к ошибкам:
Test suite failed to run TypeError: Property property of OptionalMemberExpression expected node to be of a type ["Identifier"] but instead got "CallExpression" at validate (node_modules/@babel/types/lib/definitions/utils.js:132:11) at Object.validator [as validate] (node_modules/@babel/types/lib/definitions/core.js:1451:11) at validateField (node_modules/@babel/types/lib/validators/validate.js:24:9) at Object.validate (node_modules/@babel/types/lib/validators/validate.js:17:3) at NodePath._replaceWith (node_modules/@babel/traverse/lib/path/replacement.js:179:7) at NodePath.replaceWith (node_modules/@babel/traverse/lib/path/replacement.js:161:8) at RewireState.Identifier (node_modules/babel-plugin-rewire/lib/babel-plugin-rewire.js:187:10) at NodePath._call (node_modules/@babel/traverse/lib/path/context.js:55:20) at NodePath.call (node_modules/@babel/traverse/lib/path/context.js:42:17) at NodePath.visit (node_modules/@babel/traverse/lib/path/context.js:92:31)
Дополнительный подключаемый модуль цепочки добавляется в мой package.json
файл как таковой:
"dependencies" : { "@babel/plugin-proposal-optional-chaining": 7.14.5 }
и в моем babel.config.js
личном деле тоже.
Любая помощь будет очень признательна.
Комментарии:
1. С тех пор
babel-plugin-rewire
, как это там, звучит как ошибка в этом?