Mongoose模式的函数参数类型,在Typescript中?

时间:2019-05-28 16:13:22

标签: typescript mongoose

对于试图作为参数传递给函数的猫鼬文档,我正在尝试找出正确的参数类型。

从定义开始:

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()操作的对象。

1 个答案:

答案 0 :(得分:0)

我们最终通过添加@types/mongoose模块并解决了问题中提出的功能来解决了这个问题。