Closed3
Ruby のぼっち演算子と TypeScript のオプショナルチェイニング
TypeScript の場合
const hoge: {a: string | undefined} = {a: undefined}
// undefined
hoge.a
// undefined
hoge.a?.length
// undefined (☆)
hoge.a?.length.toString
// Object is possibly 'undefined'.
hoge.a.length
Ruby の場合
# nil
nil&.hoge
# nil
nil&.hoge&.fuga
# NoMethodError (☆)
nil&.hoge.fuga
TypeScript の場合、 undefined になったときそれ以降の処理がすべて飛ばされる。
ので、 ?.
は最初に undefined になる可能性のあるところだけで良い。
Ruby の場合はそのような動きはしないので nil になりえる箇所すべてで &
演算子を使う必要がある。
このスクラップは2022/05/11にクローズされました