@Esperanto

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

null合体や論理和、論理積をどこまでネストするか

Discussion

Closed

概要

null合体や論理和、論理積をどこまでネストを許容するか悩んでいます :thinking:

三項演算子ではネストしないほうが良いとされていますが、null合体などでどこまでネストを許容すべきか指標が無いように感じたので皆様にご意見を伺いたいです :bow:

サンプル

個人的にはOK

// null合体
const example1 = param1 ?? param2 ?? param3

// 三項演算子とnull合体の複合パターン
const example2 = param1 : param2 ?? param3

個人的にはNG

// null合体
const example1 = param1 ?? param2 ?? param3 ?? param4

// 三項演算子とnull合体の複合パターン
const example2 = param1 : param2 ?? param3 ?? param4
const example3 = param1 : param2 : param3 ?? param4
0 likes

個人的にはレビューの時は以下の感覚で順で判断します

  1. 一行に80-150文字(その時のインデントの深さを考慮)を超えていたら何であれ整形を試みる
  2. Optionalチェーンは(表現が適切ならば)いくらでもok
  3. Optionalチェーンが使えなれければ(obj.val || {}).val2 の構文を数回は許す
  4. 三項演算子とnull合体は一段まで、共用はギリギリ許すが見やすさのためたけにカッコを付ける

ここでいう表現が適切ならばというのは、any型の入力を受ける時に、最終形にnullがあり得てかつプログラマだけが形が推察できるときのことです。

大体数式が複雑になるときはif文の中でもなんでも、意味単位で分割できるところでconstに代入して変数名で条件の意味を伝えます

1Like

意見ではないですが・・・

// 三項演算子とnull合体の複合パターン
const example2 = param1 : param2 ?? param3

三項演算子は ?: を使うのでは?

コロンだけはラベル?

0Like

Your answer might help someone💌