http://www.html5rocks.com/en/tutorials/frameworks/angular-websockets/のチュートリアルの後にnode.jsサーバーとangular.jsクライアントにsocket.ioを実装すると、すべて正常に動作します。Typescript:TS2496: 'arguments'オブジェクトは、ES3およびES5の矢印機能で参照できません。
しかし、クライアント側、活字体の表示次のコンパイルエラー:
TS2496: The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.
については、以下のサービスコードは:
on(eventName:string, callback) {
this.socket.on(eventName,() => {
var args = arguments; // <-- here the compilation error
this.$rootScope.$apply(() => {
callback.apply(this.socket, args);
});
});
}
emit(eventName:string, data, callback?) {
this.socket.emit(eventName, data,() => {
var args = arguments; // <-- here the compilation error
this.$rootScope.$apply(() => {
if (callback) {
callback.apply(this.socket, args);
}
});
});
}
私は、https://github.com/Microsoft/TypeScript/issues/1609の最初の記事で説明したものと同様に、さまざまなソリューションを試してみましたコンパイルを修正しますが、socket.ioの "on"機能を無効にします(jsonオブジェクトはもう解釈されません)。
このタイスクリプトのコンパイルエラーを修正または無視するにはどうすればよいですか?
引数が、代わりに親クロージャからのものを使用してください。 MDNリンクhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions – toskv
を使用することができません。 – toskv
ここに投稿する前に、私は "()=>"の代わりに "function"を使ってみましたが、これの代わりに自分自身を見逃しました。この解決策は、魅力のように機能します。クイックアンサー –