javascript - TypeScript og Socket.io


Jeg vil gjerne bruke socket.io i mitt Typescript-prosjekt, men jeg har bare funnet .d.ts-filer for server-side Typescript.

Dette er et fint eksempel: https://github.com/soywiz/typescript-node-definitions/blob/master/socket.io.d.ts

Det viser hvordan man bruker TypeScript i kombinasjon med Socket.io. På klientsiden bruker det imidlertid JavaScript.

Det jeg trenger er en .d.ts-fil for klient-side TypeScript, som løser feilmeldingen fra denne linjen:

var socket=io.connect("localhost");

Navnet "io" eksisterer ikke i den nåværende rekkevidden

Hvor kan jeg finne den riktige definisjonsfilen?

Svar #1

Det finnes @types/socket.io nå, bare installer det ved å kjøre:

npm i --save @types/socket.io

Svar #2

Du bør bruke socket.io-client d.ts-fil i klienten og bruke socket.io d.ts-fil på serveren.

Svar #3

Jeg opprettet min egen .d.ts-fil, den er ganske kort, men den fungerer godt:

declare var io : {
    connect(url: string): Socket;
};
interface Socket {
    on(event: string, callback: (data: any) => void );
    emit(event: string, data: any);
}

Denne deklarasjonsfilen kan importeres til klientsiden TypeScript, og standardeksemplet for socket.io vil fungere, her er min TypeScript-versjon:

var socket=io.connect("localhost");
socket.on("news",(data:any)=>alert(data));
socket.emit("news","hello");

Relaterte artikler