Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 我无法删除错误“Type'User | null'不可分配给Type'User”。Type'null'不可分配给Type'User'_Typescript_Prisma - Fatal编程技术网

Typescript 我无法删除错误“Type'User | null'不可分配给Type'User”。Type'null'不可分配给Type'User'

Typescript 我无法删除错误“Type'User | null'不可分配给Type'User”。Type'null'不可分配给Type'User',typescript,prisma,Typescript,Prisma,我尝试在return语句中添加非null断言检查,但错误并没有消失。我唯一的解决方案是否严格:tsconfig.json中的false?findOne的返回类型是User | null,有几个条件,请参见下文。该联合类型与作为用户的函数getPrismaUser的返回类型不匹配 要修复错误,请将getPrismaUser的返回类型更改为User | null findOne返回一个普通的旧JavaScript对象或null findoneapi调用返回的对象类型取决于 关于是否使用“选择”和“包

我尝试在return语句中添加非null断言检查,但错误并没有消失。我唯一的解决方案是否严格:tsconfig.json中的false?

findOne的返回类型是User | null,有几个条件,请参见下文。该联合类型与作为用户的函数getPrismaUser的返回类型不匹配

要修复错误,请将getPrismaUser的返回类型更改为User | null

findOne返回一个普通的旧JavaScript对象或null

findoneapi调用返回的对象类型取决于 关于是否使用“选择”和“包括”选项

如果您不使用这两个选项,返回类型将相应 到为模型生成的TypeScript类型


从.

中,该错误显示在何处?另外,非null检查在哪里?findOne可能返回null。如果您为此添加一个检查,并在函数为null时抛出一个异常,那么错误将消失,而这不是OP所要求的,我将补充说,他们应该在某个地方处理null返回类型的可能性。
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 } })
}