TypeScript类型错误:string无法赋值给SINGLEUSER类型求助
解决TypeScript类型不匹配问题
错误原因
你使用JSON.stringify(user)将对象转换成了字符串类型,但singleUser被声明为SINGLEUSER类型的对象,字符串无法赋值给对象类型,因此触发了Type 'string' is not assignable to type 'SINGLEUSER'的类型错误。
修复方案
根据user的实际形态选择对应操作:
情况1:user本身就是符合SINGLEUSER结构的对象
直接赋值即可,不需要使用JSON.stringify转换:
type SINGLEUSER = { id:string, name:string, email:string, image:string, emailVerified: any } // 直接赋值对象,无需额外转换 let singleUser:SINGLEUSER = user; const user_ = await db .collection("accounts") .findOne({_id: singleUser.id })
情况2:user是JSON格式的字符串
如果user是后端返回的JSON字符串,需要用JSON.parse()将字符串解析为对象后再赋值:
type SINGLEUSER = { id:string, name:string, email:string, image:string, emailVerified: any } // 解析JSON字符串为对应结构的对象 let singleUser:SINGLEUSER = JSON.parse(user); const user_ = await db .collection("accounts") .findOne({_id: singleUser.id })
额外类型安全提示
若担心JSON.parse的解析结果不符合预期,可以添加类型断言明确类型:
let singleUser:SINGLEUSER = JSON.parse(user) as SINGLEUSER;
内容的提问来源于stack exchange,提问作者Captai-N
相关产品推荐
相关产品推荐

