nullish optional chaining

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

便利じゃんこれ

rubyの&ね。ぱくりか。いやrubyもパクリか?

typescriptはコンパイル時にnullチェックできる

optional chainingはnull, undefinedならundefinedを返す。これってつないだら、どこまでもいけるって、それはそれで大丈夫?

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

const dogName = adventurer.dog?.name?.hoge?.koge;
console.log(dogName);


console.log(adventurer.someNonExistentMethod?.());


// > undefined
// > undefined

なんかな、、、

 いいことあるのかな

しかし、Optional chaining を使うことで上記のコードを簡潔に書くことができます。

let id = null;
if (user) {
  id = user.id;
}
``````````````````````````
const id = user?.id;

なるほどたしかに

最終更新