从打字稿开始,我尝试声明一个看起来像这样的Mongoose模式:
User
{
name : { type: String, required: true },
...
credentials :
{
email : { type : String, required : true },
password : { type : String, required : true },
},
...
}
我已经尝试过了:
import { Document, Types, Schema, Model, model } from "mongoose";
export interface ICredentials
{
email?:string,
password?:string,
}
export interface IUser extends Document
{
name?:string;
credentials?:ICredentials;
}
export var UserSchema:Schema = new Schema
({
name : { type : String, required : true },
credentials :
{
email : { type : String, required : true },
password : { type : String, required : true },
},
});
export const User:Model<IUser> = model<IUser>("User", UserSchema);
当我想创建一个新用户时,该问题似乎可以正常工作。但是它没有凭证。
我已经尝试过U.credentials.email = "test@yopmail.com"
,但是没有用。
我该怎么做?
我很确定我需要声明一个实现ICredentials的类,但是我对打字稿不熟悉。
答案 0 :(得分:0)
我最近遇到了类似的问题,这是我的解决方法; 我只是添加了一个类型断言..
U.credentials!.email = "test@yopmail.com"