找出代理校验里的 bug

来自 Proxy 与 Reflect
Node 24 高级 7分钟 找出 3处问题

找出这个生成式校验器中的绕过路径与转发错误。

JavaScript
function createValidatedUser(target) {
  return new Proxy(target, {
    set(target, key, value) {
      if (key === "age" && (!Number.isInteger(value) || value < 0)) {
        throw new TypeError("invalid age");
      }
      target[key] = value;
      return true;
    },
  });
}

const rawUser = { age: 20 };
const user = createValidatedUser(rawUser);
Object.defineProperty(user, "age", { value: -1, writable: true });
rawUser.age = -2;
在试验场中打开
报告错误