【问题标题】:Hide properties of Mongoose objects Typescript隐藏 Mongoose 对象 Typescript 的属性
【发布时间】:2021-06-30 21:24:39
【问题描述】:

我的代码遇到了一些问题。

我有一个基本上看起来像这个界面的Schema。

export interface IUser {
  name: string;
  email: string;
  password: string;
  tokens: { token: string }[]
}

我想使用我知道的唯一方法隐藏 .toJSON() 返回的数据:

UserSchema.methods.toJSON = function() {
  var obj = this.toObject();
  delete obj.password;
  return obj;
}

唯一的问题是“删除”运算符的操作数必须是可选的。这是不应该的。它应该始终是必需的。

是否有其他方法可以解决此问题,还是我必须将密码设为可选?

提前致谢。

【问题讨论】:

    标签: typescript mongoose


    【解决方案1】:

    如果有人想知道我是如何在不修改现有界面的情况下解决这个问题的。

    userSchema.methods.toJSON = function () {
      const obj = this.toObject() as Partial<LeanDocument<IUser & Document>>;
      delete obj.password;
      return obj;
    };
    

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      相关资源
      最近更新 更多