Como uso o operador existencial do CoffeeScript para verificar se há indefinidas em algumas propriedades do objeto?

Gostaria de usar o operador existencial do CoffeeScript para verificar se há indefinidas em algumas propriedades do objeto. No entanto, encontrei um pequeno problema.

Code assim:

console.log test if test?

Compiles para:

if (typeof test !== "undefined" && test !== null) console.log(test);

Qual é o comportamento que eu gostaria de ver. No entanto, quando tento usá-lo nas propriedades do objeto, desta forma:

console.log test.test if test.test?

Eu recebo algo assim:

if (test.test != null) console.log(test.test);

O que não parece um cheque contra indefinido. A única maneira de ter conseguido o mesmo comportamento (1: 1) de usá-lo para objetos era usando uma verificação maior:

console.log test.test if typeof test.test != "undefined" and test.test != null

A pergunta é - estou fazendo algo errado? Ou o código compilado é suficiente para verificar a existência de uma propriedade (uma verificação nula com conversão de tipo)?

questionAnswers(6)

yourAnswerToTheQuestion