Я не могу удалить ошибку «Тип« Пользователь | null »не может быть назначен типу« Пользователь ». Тип« null »не может быть назначен типу« Пользователь »» - PullRequest
0 голосов
/ 02 апреля 2020
export interface User {
  id: string
  name: string
  bio: string
  public_repos: string
  public_gists: string
}
async function getPrismaUser(
  ctx: Context,
  githubUserId: string,
): Promise<User> {
  return await ctx.prisma.user.findOne({ where: { githubUserId } })
}

Я попытался добавить ненулевые проверки утверждений в моем операторе возврата, но ошибка не исчезла go. Является ли мое единственное решение "строгим": false в tsconfig. json?

1 Ответ

1 голос
/ 02 апреля 2020

Тип возврата findOne() равен User | null (с некоторыми условиями, см. Ниже). Этот тип объединения не соответствует типу возврата вашей функции getPrismaUser(), равному User.

. Чтобы исправить ошибку, измените тип возврата getPrismaUser() на User | null.

findOne возвращает простой старый JavaScript объект или ноль.

Тип объекта, возвращаемого вызовом findOne API, зависит от того, используете ли вы параметры select и include.

Если вы не используете ни один из этих параметров, тип возвращаемого значения будет соответствовать типу TypeScript, сгенерированному для модели.

Из документов Prisma .

...