【发布时间】:2014-02-19 19:09:26
【问题描述】:
我需要存储一个点列表并检查该列表中是否已经包含一个新点
class Point {
x: number;
y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
window.onload = () => {
var points : Point[] = [];
points.push(new Point(1,1));
var point = new Point(1,1);
alert(points.indexOf(point)); // -1
}
显然打字稿使用引用比较,但在这种情况下没有意义。在 Java 或 C# 中,我会在 typescript 中重载 equals 方法,这似乎是不可能的。
我考虑使用foreach 循环遍历数组并检查每个条目是否相等,但这似乎相当复杂并且会使代码膨胀。
打字稿中有类似equals 的东西吗?如何实现自己的比较?
【问题讨论】:
-
Typescript 是一种元语言,而不是一种语言。你应该问“javascript 中是否有类似 equals 的东西”,而不是 typescript。
-
您在哪里/如何在脚本中进行比较?
-
@danludwig,打字稿有泛型。他们可以实现自定义容器类来检查类似的东西。一个接口 icomparable 和一个通用类 arraylist
可以完成这项工作。 -
我不是专家,但我认为 dart 提供了类似
hashcode的东西,你可以覆盖它。 pchalin.blogspot.com/2014/04/… -
可能是 Typescript 的一个有价值的替代品?
标签: javascript web reference comparison typescript