私は「?」に出くわしました。別の SO 質問の構文。このようなもの -
console.log(x?.y?.z);
それは何をするためのものか?
私は「?」に出くわしました。別の SO 質問の構文。このようなもの -
console.log(x?.y?.z);
それは何をするためのものか?
これはOptional Chainingと呼ばれます。
各レベルでプロパティを検証する必要なく、プロパティ チェーンを使用できます。例外を発生させずにプロパティ評価を回避するため、「未定義の X を読み取れません」というエラーを回避できます。
let o = {p: {q: 'foo'}};
try {
console.log('Trying to access the property x');
console.log(o.x.y);
}
catch(e) {
console.log('That was an error');
}
console.log('Trying to access the property x with Optional Chaining');
console.log(o?.x?.y);
オプションのチェーニング より多くのユースケース
関数呼び出しあり
let result = someInterface.customMethod?.();
式付き
let nestedProp = obj?.['prop' + 'Name'];
配列要素あり
let arrayItem = arr?.[42];