猫鼬和打字稿模型需求功能

时间:2020-01-06 16:37:07

标签: typescript mongoose model this

我正在用猫鼬的打字稿创建模型,我想使用必需的功能,但是与普通的javascript不同,我不能使用'this'运算符,因为打字稿无法识别范围。我想访问另一个对象属性的值,但是我不确定该怎么做。这是我在寻找的东西:

export interface IUser extends mongoose.Document {
  name: string; 
  somethingElse?: number; 
};

export const UserSchema = new mongoose.Schema({
  name: {type:String, required: true},
  somethingElse: required: function() {
     // use this.name here ......
  }

});

const User = mongoose.model<IUser>('User', UserSchema);

在此示例中,我希望能够访问“ this.name”,但是打字稿无法理解该方法。在打字稿中执行此操作的正确方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:-1)

不确定这是否是最好的方法,但是您尝试过吗?

export interface IUser extends mongoose.Document {
  name: string; 
  somethingElse?: number; 
};

export const UserSchema = new mongoose.Schema({
  name: {type:String, required: true},
});

UserSchema.obj.somethingElse.required = function () {
  // use this.name here ......
}

const User = mongoose.model<IUser>('User', UserSchema);