1
WebScoketのプロトタイプにメソッドを追加します。しかし、typescriptですが、「プロパティ 『プロトタイプが』タイプに存在しません 『というエラーを与える』」typescriptですインタフェースでプロパティ 'prototype'が型に存在しません
const WS: WebSocketExtended = require('ws');
import {Server} from 'ws';
let ws: Server;
interface WebSocketExtended extends WebSocket {
json(d: any): void
}
export function start(server){
ws = new Server({server: server});
ws.on('connection', onConnection);
};
function onConnection(socket:WebSocketExtended) {
socket.json({data:'some data'});
}
WS.prototype.json = function (d) {
try {
d = JSON.stringify(d);
this.send(d);
} catch (e) {}
};
同じファイルに含まれている場合これは動作します。インターフェイス宣言を別のファイルに移動すると、socket.json()にエラーが発生します。定義されていないメソッド –
このファイルを最初にインポートする必要があるため、定義とプロトタイプが追加されます。 'import' ./path/to/otherfile '; 'それを行うべきです。できれば、プロジェクトのルートのどこかでこれを行うことができます(複数の場所で使用する必要がある場合)。 – toskv
実際には同じファイル内では機能しません。私は私の心に来たすべての変種を試しました。すべてのケースでエラーが表示されます。あなたの側でこれを確認できますか? https://codeshare.io/ayDgVo –