typescript返回null找到模式问题

typescript返回null找到模式问题,typescript,design-patterns,Typescript,Design Patterns,如果我有这样的用户界面: export interface User { username: string; hash: string; } 我有一个方法签名,看起来像这样,它通常从数据库返回用户 function getUser(username: string): Promise<User> 用户未找到的返回类型和验证组合的一些流行模式是什么 在java中(对或错),我将返回null,并进行null检查 抛出未找到错误并捕获它是一种好模式吗?我无法协调找不到一个不是错

如果我有这样的用户界面:

export interface User {
  username: string;
  hash: string;
}
我有一个方法签名,看起来像这样,它通常从数据库返回
用户

function getUser(username: string): Promise<User>
用户未找到的返回类型和验证组合的一些流行模式是什么

在java中(对或错),我将返回
null
,并进行null检查


抛出
未找到
错误并捕获它是一种好模式吗?我无法协调找不到一个不是错误。

如果找不到用户不是错误,那么您应该像这样更改方法签名:

  const user: User = await getUser(username);
  if (user && (await passMatch(password, user.hash))) {
    return genToken();
  }
function getUser(username: string): Promise<User | null>
或者,如果您实际上不需要抛出错误,只需保持在方法内部的方式即可

此外,我可能会在
中更改
wait
,如果

  const passwordCorrect = await passMatch(password, user.hash);
  if (!passwordCorrect) {
    throw...
  }
  return genToken();
PS:

如果您想使用好的模式并在项目中实施它们,我强烈建议您使用lint。我建议使用airbnb typescript配置:

  const passwordCorrect = await passMatch(password, user.hash);
  if (!passwordCorrect) {
    throw...
  }
  return genToken();