Socket.io: Typoskript-Kompilierungsfehler

Erstellt am 6. Nov. 2020  ·  7Kommentare  ·  Quelle: socketio/socket.io

Du möchtest:

  • [x] einen Fehler melden
  • [] fordere eine Funktion an

Aktuelles Verhalten

Ich habe einige Probleme beim Kompilieren meines Codes von Typoskript zu Javascript.
Die Kompilierung schlägt aufgrund eines Typfehlers in Namespace.d.ts und Socket.d.ts fehl. Die Namespace- und Socket-Klasse erweitert EventEmitter. Sie überschreiben jedoch die 'Emit'-Funktion und die Signatur ist nicht mit der Emit-Funktion des EventEmitter kompatibel.

Gibt es eine Möglichkeit, das zu umgehen?

Schritte zum Reproduzieren (wenn das aktuelle Verhalten ein Fehler ist)

Unten ist meine tsconfig-Einstellung:

{
    "compileOnSave": true,
    "compilerOptions": {
        "outDir": "./dist",
        "lib": ["es5", "es6"],
        "target": "es3",
        "module": "commonjs",
        "moduleResolution": "node",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "allowSyntheticDefaultImports": true,
    },
    "include": ["./src/**/*"],
}

Hier sind die Abhängigkeiten des Projekts:

"dependencies": {
    "debug": "^3.1.0",
    "koa": "^2.13.0",
    "socket.io": "^3.0.0"
  },
  "devDependencies": {
    "@types/koa": "^2.11.6",
    "@types/node": "^14.14.6",
    "supervisor": "^0.12.0",
    "typescript": "^4.0.5"
  }

Beim Ausführen von: 'tsc' wurde der folgende Fehler angezeigt:

node_modules/socket.io/dist/namespace.d.ts(89,5): error TS2416: Property 'emit' in type 'Namespace' is not assignable to the same property in base type 'EventEmitter'.
  Type '(ev: string, ...args: any[]) => Namespace' is not assignable to type '(event: string | symbol, ...args: any[]) => boolean'.
    Type 'Namespace' is not assignable to type 'boolean'.
node_modules/socket.io/dist/socket.d.ts(84,5): error TS2416: Property 'emit' in type 'Socket' is not assignable to the same property in base type 'EventEmitter'.
  Type '(ev: string, ...args: any[]) => this' is not assignable to type '(event: string | symbol, ...args: any[]) => boolean'.
    Type 'this' is not assignable to type 'boolean'.
      Type 'Socket' is not assignable to type 'boolean'.

Konfiguration

  • Betriebssystem: Windows
  • socket.io version: 3.0.0
bug

Hilfreichster Kommentar

Können Sie diese Version so schnell wie möglich veröffentlichen?

Oder lassen Sie uns direkt fix/typescript-emit Filiale

Alle 7 Kommentare

Das gleiche Problem hier haben!

Dasselbe Problem.
Debian, socket.io 3.0

Danke, ich konnte das Problem tatsächlich reproduzieren.

Dies sollte durch https://github.com/socketio/socket.io/commit/50671d984a81535a6a15c704546ca7465e2ea295 behoben werden

Können Sie diese Version so schnell wie möglich veröffentlichen?

Oder lassen Sie uns direkt fix/typescript-emit Filiale

Dies scheint einer Version 3.0.1 würdig zu sein.

3.0.1 ist raus!

Ich habe das TypeScript-Beispiel hier aktualisiert: https://github.com/socketio/socket.io/tree/master/examples/typescript

Vielen Dank!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen