当我调用数据库时,我会返回文档类型。
const table: TableDocument = await this.tableSchema.create({ ...createTableDto })
console.log(table)
表对象如下所示:
{
createdBy: '12',
capacity: 4,
tableNumber: 5,
_id: new ObjectId("618bdb1ab2e5813b6f1fc198"),
createdAt: 2021-11-10T14:45:46.279Z,
updatedAt: 2021-11-10T14:45:46.279Z,
__v: 0
}
但我无法通过代码访问updatedAt。
表__vexists
表.does not exist on this type: TableDocument
更新
如果可能的话,我很想告诉typescript我正在返回一个自定义类型:
const table: ResponseTable = await this.tableSchema.create({ ...createTableDto })
其中确实包括updatedAt,但出现错误:Table Document is not assignable to ResponseTable...
我不知道如何使用mongoose 6.0字体脚本支持来解决这个问题
所以过了一段时间我有了这个想法:
export type TableDocument = Table & Document & {updatedAt: Date, createdAt: Date}
当我在创建Schema类Table
之后创建TableDocument
类型时,我只需将updatedAt和createdAt属性添加到它中,所以当mongoose告诉我它正在返回TableDocument时,这些字段被包括在内,供Typescript使用。