【问题标题】:Function parameter type for Mongoose schema, in Typescript?猫鼬模式的函数参数类型,在 Typescript 中?
【发布时间】: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


    【解决方案1】:

    我们最终通过添加 @types/mongoose 模块解决了这个问题,然后问题中提供的功能起作用了。

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 2013-02-04
      • 2021-09-25
      • 2014-05-20
      • 1970-01-01
      • 2020-07-20
      • 2015-03-16
      • 2023-01-28
      • 2013-01-25
      相关资源
      最近更新 更多