3

私はsocket.io8.7を使用しています。ネットワークアプリを作成するためのIDEとしてWebstormを使用しています。

これを書くと、Webstormにエラーが表示されます。

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

Webstorminは赤で下線を引き、「名前が必要です」と言います。Webstormの結果、このコード行を含むJavaScriptファイル全体が壊れたコードファイルとして表示されます。

このエラーを無視するようにWebstormに指示する方法を知っている人はいますか?それは実際のエラーメッセージをカバーしているので、それは非常に迷惑です。

任意の提案をいただければ幸いです。

4

2 に答える 2

3

バグレポートをトラッカーに送信する

編集:いいえ、これはsocket.ioのバグではありません。JavaScriptで予約語をオブジェクトキーとして使用することに何の問題もありません。予約語は識別子(変数/関数名)としてのみ予約されており、他の場所では予約されていません。これはWebStormIDEのバグです。おそらく、他の言語では予約語をまったく許可しないことが一般的であるためです(実際にそうする理由はありません)。

参照:

  • ES5仕様7.6.1

    予約語は、識別子として使用できないIdentifierNameです。

  • MozillaのMDN

    予約語は実際には識別子にのみ適用されます

于 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 に答える