我考虑的使用场景是创建一个极度自私的
我希望能够省略明确的检查并直接执行以下操作:
但是这并不起作用,因为我的
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
是一个对象,因此被视为真值。
规范似乎表明这是不可能的,但javascript是一个奇怪的生态系统,我希望有人能提出可能的解决方案。
(另外,请不要辩论这种类型的Null
的优点,我知道这可能是一个有争议的问题,我只是想知道它是否可以被完成,而不是是否应该完成。)