Я хотел бы использовать экзистенциальный оператор CoffeeScript для проверки некоторых свойств объекта для undefined. Однако я столкнулся с небольшой проблемой.
Код вроде этого:
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
Вопрос: я делаю что-то неправильно? Или это скомпилированный код, который достаточно для проверки существования свойства (нулевая проверка с преобразованием типов)?