Operador Existencial CoffeeScript e este

Notei algo um pouco estranho no compilador CoffeeScript e fiquei imaginando se esse era o comportamento correto ou não. Se estiver correto, estou curioso para saber por que há uma diferença ..

Dado o seguinte CoffeeScript:

if @myVar?
  alert myVar

Eu esperava que ele fosse compilado em JavaScript assim:

if (typeof this.myVar !== "undefined" && this.myVar !== null) {
  alert(myVar);
}

Mas, em vez disso, o que o compilador CoffeeScript produz é este:

if (this.myVar != null) {
  alert(myVar);
}

Se eu não referenciar isso (ou qualquer outro objeto pai), o CoffeeScript será compilado como seria de espera

Este é o comportamento correto? Se sim, por que funciona diferente ao usar isso?

Editar

Para adicionar um pouco mais de esclarecimento. Isso não acontece apenas com isso, mas com outras propriedades dos objetos. Por exemplo, se eu substituísse o CoffeeScript acima pelo que está abaixo, ele ainda seria compilado com apenas "! = Null" ...

if myVar.myProp?
  alert myVar

questionAnswers(2)

yourAnswerToTheQuestion