【发布时间】:2022-12-04 06:25:35
【问题描述】:
我的 query 和 queryStr 类型似乎过多,它们工作得很好,我只是想知道是否可以简化它们。这些类型来自我的产品模型(ProductDoc),可以改用泛型吗?我尝试了一些组合,但没有一个有意义,请让我知道使用泛型是否更好,或者当前类型是否是最佳方法。
export class ApiFeatures {
query: Query<
(ProductDoc & { _id: Types.ObjectId })[],
ProductDoc & { _id: Types.ObjectId },
{},
ProductDoc
>;
queryStr: ParsedQs;
constructor(
query: Query<
(ProductDoc & { _id: Types.ObjectId })[],
ProductDoc & { _id: Types.ObjectId },
{},
ProductDoc
>,
queryStr: ParsedQs
) {
this.query = query;
this.queryStr = queryStr;
}
search() {
const keyword = this.queryStr.keyword
? {
title: {
$regex: this.queryStr?.keyword,
$options: "i",
},
}
: {};
this.query = this.query.find({ ...keyword });
return this;
}
}
【问题讨论】:
标签: typescript