对象可能是 'null'.ts(2531)
Object is possibly 'null'.ts(2531)
我正在使用 Node 和 Typescript。我正在查找 mongodb 文档并将一些值更新到其中,然后保存它。
在声明保存时显示此错误。
下面是代码:
let user = await User.findById(id);
if (user) {
user = Object.assign(user, req.body);
await user.save(); // on this line error is shown
} else {
throw "User not found";
}
在线等待 user.save() 显示此错误。
这意味着用户可以是 null
。
您可以使用条件语句:
if(user){
await user.save()
}
await user?.save()
我不确定为什么,但改变 user
变量似乎是导致问题的原因。
用一个新变量重写它对我来说在打字稿操场上工作得很好(我不得不作弊以避免有一个真正的 Mongoose 模型并且我弥补了类型,但它应该是相同的想法):
type User = {
email: string;
save: () => Promise<void>
}
declare let user: User | null;
if (user) {
const newUser = Object.assign(user, { email: "test@example.com"})
newUser.save(); // on this line error is shown
} else {
throw "User not found";
}
我正在使用 Node 和 Typescript。我正在查找 mongodb 文档并将一些值更新到其中,然后保存它。 在声明保存时显示此错误。 下面是代码:
let user = await User.findById(id);
if (user) {
user = Object.assign(user, req.body);
await user.save(); // on this line error is shown
} else {
throw "User not found";
}
在线等待 user.save() 显示此错误。
这意味着用户可以是 null
。
您可以使用条件语句:
if(user){
await user.save()
}
await user?.save()
我不确定为什么,但改变 user
变量似乎是导致问题的原因。
用一个新变量重写它对我来说在打字稿操场上工作得很好(我不得不作弊以避免有一个真正的 Mongoose 模型并且我弥补了类型,但它应该是相同的想法):
type User = {
email: string;
save: () => Promise<void>
}
declare let user: User | null;
if (user) {
const newUser = Object.assign(user, { email: "test@example.com"})
newUser.save(); // on this line error is shown
} else {
throw "User not found";
}