我的由typegoose创建的对象(在model.ts文件中)的函数保存应该返回Promise<Todo>
,但它返回Promise<Document<any, {}>>
并且我有这个错误:
Type 'Document<any, {}>' is missing the following properties from type 'Todo': createdAt, updatedAt, content, isDone
我应该如何纠正这个?
模型 ts
import { getModelForClass } from "@typegoose/typegoose";
import { ObjectId } from "mongodb";
import { Todo } from "../../entities";
import { NewTodoInput } from "./input";
// This generates the mongoose model for us
export const TodoMongooseModel = getModelForClass(Todo);
export default class TodoModel {
async getById(_id: ObjectId): Promise<Todo | null> {
// Use mongoose as usual
return TodoMongooseModel.findById(_id).lean().exec();
}
async create(data: NewTodoInput): Promise<Todo> {
const todo = new TodoMongooseModel(data);
return todo.save();
}
}
输入 ts
import { Field, InputType, ID } from "type-graphql";
import { MaxLength, MinLength } from "class-validator";
@InputType()
export class NewTodoInput {
@Field()
@MaxLength(300)
@MinLength(1)
content: string | undefined;
}
实体待办事项
import { ObjectType, Field } from "type-graphql";
import { prop } from "@typegoose/typegoose";
import { ObjectId } from "mongodb";
@ObjectType()
export class Todo {
@Field()
readonly _id!: ObjectId;
@prop()
@Field(() => Date)
createdAt!: Date;
@prop()
@Field(() => Date)
updatedAt!: Date;
@prop()
@Field()
content!: string;
@prop({ default: false })
@Field()
isDone!: boolean;
}
谢谢你。