概要
- テストプログラム
const returnEtc = (key: string) :string => key && (key + ' foobar!'); let returnValue = returnEtc('testdayo'); console.log(returnValue);
- 結果
testdayo foobar!
phpだと、&& 演算子の返却値はあくまでbooleanな気がするが、javascriptでは違う。
これけっこう他の言語からしたら特殊なんじゃないか? 論理積とか論理和風だけど、厳密には違う。 今回の例でうと、key と (key + 'foobar!')はどちらもtrueになるが、booleanの論理積(true)ではなく、返却されるのは後勝ちの(key + 'foobar!')という話。
(たしかに、意識せずにlet arg1 = name || 'default';
みたいなソースよく見かけたよなと改めて)