对于试图作为参数传递给函数的猫鼬文档,我正在尝试找出正确的参数类型。
从定义开始:
import mongoose, { Schema, Document } from 'mongoose';
export interface IUser extends Document {
email: string;
firstName: string;
lastName: string;
}
const UserSchema: Schema = new Schema({
email: { type: String, required: true, unique: true },
firstName: { type: String, required: true },
lastName: { type: String, required: true }
});
export default mongoose.model<IUser>('User', UserSchema);
然后我们有一个看起来像这样的函数
function updateUser(user: IUser) {
user.firstName = 'something';
user.lastName = 'somethingElse';
user.save();
}
这里的问题是Document类型没有save()
函数,因此失败。同时,我无法指定User
,因为它会引发错误“用户'指的是一个值,但在此处被用作类型。ts(2749)”。
用户参数是findOne()
操作的对象。
答案 0 :(得分:0)
我们最终通过添加@types/mongoose
模块并解决了问题中提出的功能来解决了这个问题。