TypeScript i Socket.io


Chciałbym użyć socket.io w moim projekcie Typescript, ale znalazłem tylko pliki .d.ts dla maszynopisu po stronie serwera.
To jest dobry przykład:

https://github.com/soywiz/type ... .d.ts
https://github.com/soywiz/type ... .d.ts
Pokazuje, jak używać TypeScript w połączeniu z Socket.io. Jednak po stronie klienta używa JavaScript.
Potrzebuję pliku .d.ts dla języka TypeScript po stronie klienta, który rozwiązuje komunikat o błędzie z tego wiersza:
var socket=io.connect("localhost");
Nazwa „io” nie istnieje w bieżącym zakresie

Gdzie mogę znaleźć odpowiedni plik definicji?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jest teraz @ types/socket.io, po prostu zainstaluj go, uruchamiając:
npm i --save @types/socket.io
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz użyć pliku socket.io-client d.ts w kliencie i używając pliku socket.io d.ts na serwerze.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Utworzyłem własny plik .d.ts, jest dość krótki, ale działa dobrze:
declare var io : {
connect(url: string): Socket;
};
interface Socket {
on(event: string, callback: (data: any) => void );
emit(event: string, data: any);
}

Ten plik deklaracji można zaimportować do klienta Typescript, a standardowy przykład socket.io będzie działał, oto moja wersja Typescript:
var socket=io.connect("localhost");
socket.on("news",(data:any)=>alert(data));
socket.emit("news","hello");
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wewnątrz
@ types/socket.io-client
możesz znaleźć następujący typ, który działa najlepiej dla klientów:
<pre class="lang-js prettyprint-override">
const client: SocketIOClient.Socket = io('http://localhost');

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się