特定の条件にマッチする場合の処理を記述する場合、条件に合わないときはブロックの先頭でreturn
するという事はよくあります。例えばこんな感じ。
function doTask(params){
const state = getState(params); // <-(1)
if (!state) return; // <-(2)
// let's do task!
}
似たようなことを大量に書くことになるので、この(1)と(2)を一行で書きたくなってきます。
しかし JavaScript/TypeScript では以下のように単純に一行にまとめる事はできません。
function doTask(params){
const state = getState(params) ?? return;
// let's do task!
}
ではどうするか。Generatorを使います
function *doTask(params){
const state = getState(params) ?? (yield);
// let's do task!
}
return
はダメでもyield
はいけるんですね。ちょっと不思議