Node JS 和 NPM 的初學者。以下代碼引發語法錯誤,無法找出問題所在。
節點版本:v12.18.3 NPM 版本:7.15.1
錯誤
LayerObj.options?.["displayName"] != undefined
^
SyntaxError: Unexpected token '.'
at wrapSafe (internal/modules/cjs/loader.js:1053:16)
at Module._compile (internal/modules/cjs/loader.js:1101:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/Applications/MAMP/htdocs/nft-generators/hashlips_art_engine-main/index.js:2:39)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
代碼
const layersSetup = (layersOrder) => {
const layers = layersOrder.map((layerObj, index) => ({
id: index,
elements: getElements(`${layersDir}/${layerObj.name}/`),
name:
layerObj.options?.["displayName"] != undefined
? layerObj.options?.["displayName"]
: layerObj.name,
blend:
layerObj.options?.["blend"] != undefined
? layerObj.options?.["blend"]
: "source-over",
opacity:
layerObj.options?.["opacity"] != undefined
? layerObj.options?.["opacity"]
: 1,
bypassDNA:
layerObj.options?.["bypassDNA"] !== undefined
? layerObj.options?.["bypassDNA"]
: false,
}));
return layers;
};
uj5u.com熱心網友回復:
可選鏈 ( ?.)是在 Node.js 14 中添加的,在 Node 12 中不直接可用。
這 ?。運算子就像 . 鏈接運算子,除了如果參考為空(空或未定義)時不會導致錯誤,運算式會短路回傳值未定義。當與函式呼叫一起使用時,如果給定的函式不存在,則回傳 undefined。
使用更新版本的 Node 或使用 Node 12 兼容代碼。
Node.js v14.0 中的新 JS 特性討論了 Node 14 中的一些新語言結構。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395465.html
下一篇:npm安裝打字稿失敗
