我们应该在类型或界面之间使用什么?

时间:2014-10-23 21:37:29

标签: typescript

我正在使用Typescript来创建一些应用程序,我不知道在声明变量或方法时我应该在类型或接口/类之间使用什么。

类型示例:

public equals(rect: Rectangle): boolean {
    return (this.x === rect.x && this.y === rect.y && this.width === rect.width && this.height === rect.height);
}

接口/类的示例:

public equals(rect: Rectangle): Boolean {
    return (this.x === rect.x && this.y === rect.y && this.width === rect.width && this.height === rect.height);
    }

这两种解决方案之间有更好的方法吗?为什么我们要使用一个而不是另一个?

2 个答案:

答案 0 :(得分:4)

您几乎应该始终使用boolean代替Boolean

小写版本booleannumberstring引用同名的JavaScript基元类型。这些是您从true1 + 1"hello"等常规表达式中获得的类型。

大写版本BooleanNumberString指的是相同类型的object版本。如果你努力的话,你只能得到这样的物体,例如:致电new String('hello')。这些对象大多数的行为与它们的原始对象相似,但行为略有不同(例如typeof (new String('hello'))是" object"而不是"string"。基本上,除非你有理由不这样做,否则不要考虑这些。

答案 1 :(得分:2)

Boolean 是一个包装器对象。例如,你可以写:

var b = new Boolean('true');

boolean 是三种基本类型的JavaScript之一。在这种情况下,您应该使用 boolean Boolean 的用例非常少,但这是一个不同的帖子。

这个问题通常只在处理原语时出现:布尔字符串数字。与 boolean 一样,始终使用小写版本,因为它表示基本类型而不是它的包装。