Я пытаюсь создать общий c crud-контроллер с typescript / mon goose, и столкнулся с проблемой типа, если я сделаю следующее, он будет работать нормально:
async findOne<T>(id: number): Promise<T> {
return this._collection.findOne({ _id: id }, null, { lean: true });
}
Но использование .lean () дает ошибку типа, даже если результат тот же (насколько я понимаю):
async findOne<T>(id: number): Promise<T> {
return this._collection.findOne({ _id: id }).lean();
}
Он думает, что .lean () может возвращать T или T [ ].
В случае, если это нормально для findOne (), у меня также есть та же проблема с findById, которая, как я думал, может когда-либо вернуть только один объект:
async findById<T>(id: number): Promise<T> {
return this._collection.findById(id).lean(); // error
// return this._collection.findById(id, null, {lean: true}); <-- works
}
Что такое разница / проблема здесь?