如何为来自 mongodb 的接口实现 "equals"?

How to implement "equals" for interface from mongodb?

export interface IHealthPlanCard {
    _id: string,
    statusId: string;
}

const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))

在那种情况下,它向我显示错误:属性 'equals' 在类型 'string'.ts 上不存在(2339)

不能写这样的东西:

export interface IHealthPlanCard {
    _id: string,
    statusId: string | eqauls;
}

如果您正在使用 MongoDB(或 mongoose)并处理 ObjectId,您应该始终使用 ObjectId 类型而不是 string:

import { ObjectId } from "mongodb"
// import { Types } from "mongoose"

export interface IHealthPlanCard {
  _id: string,
  statusId: ObjectId;
}

const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))

如果您将架构定义为使用 ObjectId 而不是 string,这将 起作用。

现在您的 ObjectId 将具有 .equals() 方法。