trueをスイッチ文にする
ここの記事で早期にreturnを用いることで、if文によるネストをなくす方法が紹介されているが、コメント欄に面白いコードがあった。
code:.ts
// result loadingを返す
const doSomething = (): {
result?: string;
loading: boolean
} => {
return {
result: "hgoehoge",
loading: false
};
}
// ネストふんだん
function render() {
const personToLookFor = 'Thierry'
const {result, loading} = doSomething();
if (!loading) {
let message
if (result) {
message = result already exists.
} else {
message = result doesn't exist.
}
return message
} else {
return 'Loading...'
}
}
// switch文でtrueをスイッチしていく
function render2() {
const personToLookFor = 'Thierry';
const {result, loading} = doSomething();
switch (true) {
case loading: return "Loading..."
case !!result: return result already exists.
default: return result doesn't exist.
}
}
ハッキーなコードで使わないことに越したことはないが、面白い書き方だと思った。