if がそのまま式化するだけでもいいし パターンマッチングでもいいのでとりあえず const 前提で書くときの不便をなくしてほしいものです
今回不満に感じたもの
const x = use_foo
? foo(options)
: bar(options)
if (!x) {
throw new Error("error: foo options")
}
bar の場合は必ず x に値が入るけど foo の場合は options によっては null/undefined になるかもしれない
x に代入後に !x の場合に foo のオプションがおかしいってエラーを起こしてる
bar の場合は関係ないので use_foo が true の場合の式中に書きたい
if が式なら なんの問題もない
const x = (
if (use_foo) {
const foo_value = foo(options)
if (!foo_value) {
throw new Error("error: foo options")
}
foo_value
} else {
bar(options)
}
)
アロー関数の即時実行は書きづらいし見づらいから使うのは控えめにしたい
かと言ってこういうのをつくってみては 使いやすいとも言いづらく結局使わない
const x = use_foo
? conditional(
foo(options), v => v,
v => v,
v => {new Error("error: foo options")}
)
: bar(options)
最近は PHP でも match 式が使えたり色々進化してるのに最近の JavaScript はあまり新機能もなくて勢いが落ちてる気がする
周辺ツールも Rust などにいって WebAssembly が増えてるし そういうのに移行していくことになるのかな