【发布时间】:2019-05-29 00:38:01
【问题描述】:
对于作为参数传递给函数的猫鼬文档,我正在尝试找出正确的参数类型。
从定义开始:
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,因为它会抛出错误“'User' 指的是一个值,但在这里被用作类型。ts(2749)”。
用户参数是findOne()操作的对象。
【问题讨论】:
标签: typescript mongoose