类型'typeof Schema'

时间:2018-05-30 22:50:16

标签: node.js typescript mongoose

我正在尝试将change_id从mongoose架构变为'id',如此处所示MongoDB: output 'id' instead of '_id'

复制ID字段。

Schema.virtual('id').get(function(){
    return this._id.toHexString();
});

// Ensure virtual fields are serialised.
Schema.set('toJSON', {
    virtuals: true
});

我使用的是typescript,Schema似乎没有'virtual'方法,也没有'set'方法,关键字'this'也没有绑定在这个上下文中。谁知道他们的打字稿等价物?

1 个答案:

答案 0 :(得分:2)

这似乎可以继承

import { Schema } from 'mongoose';

class BaseSchema extends Schema {
  constructor(args) {
    super();

    this.add(args);

    this.virtual('id').get(function(this: any) {
      return this._id.toHexString();
    });

    this.set('toObject', {
      virtuals: true,
    });

    this.set('toJSON', {
      virtuals: true,
    });
  }
}