让我们假设我们有一个依赖mongoose查询的typescript前端。
export interface Item {
name: string;
sku: string;
manufacturer: Manufacturer;
foo: bar;
...
}
这对于创建文档非常有用,但是一旦从数据库中获取数据,就会附加一些额外的数据,比如“_id”、“_createdAt”等等。过去,我采用了一种非常麻烦的方法来创建一个接口,比如“MongooseDocumentItem”,并使用额外的数据扩展了原来的接口。但是一旦这样做了,在创建下一个接口时就会重复自己的操作。所以实际上,类似于
export interface MongooseDocument<T> {
_id: string;
data: T;
...
}
但是这种方法改变了传入数据结构的接口(推入数据键)。正确的方法是什么?应该有一个非常明显的解决方案,我已经错过了。
1条答案
按热度按时间qnyhuwrf1#
常见的方法是使用mongoose提供的
Document
类型并对其进行扩展。第一个
但这不包括
createdAt
或updatedAt
字段,因此您可能希望创建自己的TimestampDocument
来从其进行扩展。第一个
Playground