CoffeeScript の存在演算子を使用して、未定義のオブジェクト プロパティを確認したいと考えています。ただし、少し問題が発生しました。
次のようなコード:
console.log test if test?
コンパイルすると:
if (typeof test !== "undefined" && test !== null) console.log(test);
これは私が見たい動作です。ただし、次のように、オブジェクトのプロパティに対して使用しようとすると:
console.log test.test if test.test?
私はそのようなものを得ます:
if (test.test != null) console.log(test.test);
undefined に対するチェックのようには見えません。オブジェクトに対して使用する場合と同じ (1:1) 動作を実現する唯一の方法は、より大きなチェックを使用することでした。
console.log test.test if typeof test.test != "undefined" and test.test != null
問題は - 私は何か間違ったことをしていますか? または、コンパイルされたコードは、プロパティの存在を確認するのに十分なものですか (型変換による null チェック)?