【发布时间】:2019-06-12 17:50:27
【问题描述】:
我在 TypeScript 中犯了一个错字,这是在代码审查期间发现的。
我使用了someArray.indexOf[someObject] 而不是someArray.indexOf(someObject)。
我预计 IDE/编译器会出错。相反,没有引发错误,结果只是未定义。
谁能解释一下?
【问题讨论】:
-
你分配的结果是什么?因为您写的是有效,所以您正在使用
indexOf方法的someObject成员。嗯,正在努力。唯一的错误来自 TypeScript 编译,并且仅当您尝试将结果分配给与预期类型不匹配的内容时。 -
欢迎使用javascript,一切都是对象!
-
@DeWetvanAs 我其实对你的问题很好奇 - 这似乎是 TypeScript see example here 的真正错误/问题。似乎如果您尝试分配给
number类型的变量,.indexOf[someObject]的结果 不应 被视为number,因此编译将失败。这就是 TypeScript 的全部思想 - 强制执行类型。这里的答案集中在 JS 上,但忽略了这一点。 -
@vlaz 实际上是一个具有多个属性的复杂对象。
标签: typescript methods properties