Ich möchte Methode zum Prototyp von WebScoket hinzufügen. Aber Typoskript gibt Fehler zu sagen ‚Property‚Prototyp‘existiert nicht auf Typ‚WebSocketExtended‘‘Eigenschaft "Prototyp" existiert nicht auf Typ
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) {}
};
Dies funktioniert, wenn sie in der gleichen Datei enthalten. Aber wenn ich die Interface-Deklaration in eine separate Datei verschiebe, bekomme ich einen Fehler bei socket.json(). Undefinierte Methode –
Sie müssen diese Datei zuerst in diese Datei importieren, damit die Definitionen und der Prototyp hinzugefügt werden. ein 'Import './path/to/otherfile';' sollte es tun. Vorzugsweise können Sie dies an der Wurzel Ihres Projekts tun (wenn es an mehreren Stellen verwendet werden muss). – toskv
Eigentlich funktioniert es nicht in der gleichen Datei. Ich habe alle Varianten ausprobiert, die mir einfielen. Ich sehe Fehler in allen Fällen. Könntest du das auf deiner Seite überprüfen? https://codeshare.io/ayDgVo –