gpt4 book ai didi

typescript - Typescript 中 Mongoose 模式的函数参数类型?

转载 作者:行者123 更新时间:2023-12-05 06:26:16 24 4
gpt4 key购买 nike

对于作为参数传递给函数的 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,因为它会抛出错误“'User' 引用了一个值,但在此处用作类型。ts(2749)”。

用户参数是 findOne() 操作的对象。

最佳答案

这对我有用:

import { Model } from "mongoose";


function updateUser(user: Model<IUser>) {
cost newUser = new user({
firstName:'something',
lastName:'somethingElse',
})
return newUser.save();
}

如果您在不同的文件中工作,您还需要导入 IUser 界面。

让我知道它是否适合您。

关于typescript - Typescript 中 Mongoose 模式的函数参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com