Рассматриваемый мной вариант использования - создание безнадежно эгоцентрического Null
для объединения.
Этот код работает, но требует явной проверки по рассматриваемому Null
:
const Null = new Proxy({}, {get: () => Null});
let data = Null;
console.log(data.a.b.c.d !== Null ? "Has value" : "Is Null");
Я хотел бы иметь возможность опустить явную проверку и просто сделать
console.log(data.a.b.c.d ? "Has value" : "Is Null");
но это не работает, потому что мой Null
является объектом и поэтому считается правдой.
spec, похоже, указывает на то, что это не Это невозможно, но javascript - такая странная экосистема, что я надеюсь, что кто-то сможет придумать возможное решение.
(Также, пожалуйста, не обсуждайте достоинства такого рода Null
, я знаю, что это потенциально спорный вопрос, и меня просто интересует, МОЖНО ли это сделать, а не ДОЛЖНО ли это быть сделано.)