打字稿:地图有关键(对象)不工作

TypeScript: Map has key (object) not working

我在检查地图是否已有对象作为键时遇到了一些问题。

例如

const myMap: Map<MyObject1, MyObject2> = new Map<MyObject1, MyObject2>();

我还在 MyObject1 中定义了一个 equals 函数 class

equals(other: ThreatAgentMgm): boolean {
    return other.id === this.id;
}

myMap.has(myObject1) 总是错误的。 我读到 has 方法基于 === 运算符,我应该在 MyObject1 class 中定义其他内容吗?

因为最后每个 JSON 对象只是一个字符串,所以我最终使用 JSON.stringify(myObject) 作为 Map 的键,以及几个值 (MyObject1, MyObject2 ) 作为实际值。这样我就可以在 O(1) 时间内获得所需的值,同时保持关键对象可用,而无需再次解析 JSON 或最糟糕的是,再次从数据库中检索它。