是否有标准方法可以在Javascript中返回“选项”(可能为null的对象)?

例如,是否有更标准的方式来处理类似这样的代码,尤其是功能GetById(userId)

class User {
  static function GetById(userId) {
    if (userId === 'A_GOOD_ID') {
        return new User('GOOD_NAME');
    }
    return null;
  }

  constructor(name) {
    this.name = name;
  }
}

function authenticate(userId) {
  const user = User.GetById(userId);
  if (user) return true;
  return false;
}

最佳答案

这是标准方式,返回null而不是例如抛出错误是可取的。

使用该函数时,应检查返回的值是否正确:

const result = User.GetById(...);
if (!result) {
  // handle error
}


或者,您可以使用速记or

User.GetById(...) || handleError();


在许多人看来,它的可读性较差。

09-11 01:28