コーヒースクリプトでは、次のように関数で存在演算子を使用します。
myFunc?()
にコンパイルします
typeof myFunc === "function" ? myFunc() : void 0;
「void 0」の代わりになるものをエレガントに定義する方法はありますか? それとも、元の表記法を使用する代わりに、すべてを書き出す必要がありますか?
コーヒースクリプトでは、次のように関数で存在演算子を使用します。
myFunc?()
にコンパイルします
typeof myFunc === "function" ? myFunc() : void 0;
「void 0」の代わりになるものをエレガントに定義する方法はありますか? それとも、元の表記法を使用する代わりに、すべてを書き出す必要がありますか?
別の実存演算子を追加できます。
x = f?() ? 'pancakes'
f()
返品のnull
場合は機能しませんが、返品undefined
の場合は正しいことを行います。例えば:f()
false
f = 'not a function'
console.log f?() ? 'pancakes'
# pancakes
f = -> 'is a function'
console.log f?() ? 'pancakes'
# is a function
f = -> null
console.log f?() ? 'pancakes'
# pancakes
f = ->
console.log f?() ? 'pancakes'
# pancakes
f = -> false
console.log f?() ? 'pancakes'
# false
デモ: http: //jsfiddle.net/ambiguous/f6yvN/1/
したがって、必要なものに近づくことができ、関数が返すことを期待しているものの種類によっては、それで十分に近い場合があります。