Как мне использовать экзистенциальный оператор CoffeeScript, чтобы проверить некоторые свойства объекта на неопределенность?

Я хотел бы использовать экзистенциальный оператор 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);

Который вообще не выглядит как проверка против неопределенного. Единственный способ, которым я мог бы добиться того же (1: 1) поведения, что и при использовании его для объектов, - использовать большую проверку:

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

Вопрос - я что-то не так делаю? Или скомпилированный код является достаточным для проверки существования свойства (нулевая проверка с преобразованием типов)?

Ответы на вопрос(3)

Ваш ответ на вопрос