【发布时间】:2018-07-09 11:20:37
【问题描述】:
我知道下面的代码很愚蠢。但在实时编译时可能会使用相同类型的两个不同数据。
if (false === true) {}// getting error
运算符 '===' 不能应用于类型 'false' 和 'true'
但是Object.is() 正在接受这个不同的数据而没有任何错误,它返回false
我知道他们之间的difference。但是为什么打字稿会同时抛出语法错误,为什么Object.is() 不会抛出该错误。
这个错误信息也正确吗?或不?
运算符“===”不能应用于类型“false”和“true”。应该是operator '===' cannot be applied to types 'Boolean' and 'Boolean'
如果消息是错误的,那么它在任何升级版本中都解决了吗?一世 m 使用 typescript 2.0.3 版本。
此问题出现在以下场景中
-
1
Object.is("string", "string"); if ("string" === "string1") { } -
2
Object.is(1, 2); if (1 === 2) { }
等等。
【问题讨论】:
-
好吧....不能应用...有什么问题?
-
仅供参考 两个字符串对象永远不会相等 - 即使它们都包含相同的字符。
-
为什么您会提示您收到的错误消息 clearly 错误代码是错误的,我无法理解。
-
@ScottMarcus:
"a" === "a"istrue. -
@ScottMarcus:现在你在比较引用,而不是字符串。
标签: javascript angular typescript ecmascript-6