3

我正在使用 socket.io 8.7。我使用 Webstorm 作为 IDE 来编写我的网络应用程序。

当我写这个时,Webstorm 向我显示了一个错误:

io.sockets.in("some room id").emit(...)

Webstormin用红色突出显示“预期名称”。Webstorm 中的结果将包含此代码行的整个 JavaScript 文件显示为损坏的代码文件。

有谁知道如何告诉 Webstorm 忽略这个错误?这很烦人,因为它涵盖了真正的错误消息。

任何建议表示赞赏。

4

2 回答 2

3

向他们的跟踪器发送错误报告

编辑:不,这不是 socket.io 的错误。在 JavaScript 中使用保留字作为对象键没有任何问题 - 保留字仅保留为标识符(变量/函数名称),而不是其他任何地方。这是 WebStorm IDE 的一个错误,可能是因为在其他语言中根本不允许保留字是很常见的(实际上没有理由这样做)。

参考:

于 2011-12-26T14:59:52.473 回答
2

发生这种情况是因为“in”是 JavaScript 中的保留字。这是一个运算符:

if ("someString" in someObject) {
  // someObject has a property called "someString"
}

换句话说,这一个“真正的错误”。现在,如果你真的想要一个名为“in”的属性/方法,你可以这样做:

io.sockets['in']("some room id").emit(...)
于 2011-12-26T15:44:40.657 回答