T00*_*0rk 7 nested mongoose typescript
从打字稿开始,我尝试声明一个 Mongoose 模式,它看起来像这样:
User
{
name : { type: String, required: true },
...
credentials :
{
email : { type : String, required : true },
password : { type : String, required : true },
},
...
}
Run Code Online (Sandbox Code Playgroud)
我试过这个:
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);
Run Code Online (Sandbox Code Playgroud)
当我想创建一个新用户时的问题似乎工作正常。但它没有凭据。我试过了,U.credentials.email = "test@yopmail.com"但它不起作用。我怎么能做到呢?我很确定我需要声明一个实现 ICredentials 的类,但我不熟悉打字稿。
我最近遇到了类似的问题,这是我解决的方法;我只是添加了一个类型断言..
U.credentials!.email = "test@yopmail.com"
Run Code Online (Sandbox Code Playgroud)