Socket.io: erreur de compilation dactylographiée

Créé le 6 nov. 2020  ·  7Commentaires  ·  Source: socketio/socket.io

Tu veux:

  • [x] signaler un bogue
  • [] demander une fonctionnalité

Comportement actuel

J'ai quelques difficultés à compiler mon code de dactylographié en javascript.
La compilation échoue en raison d'une erreur de type dans namespace.d.ts et socket.d.ts. La classe Namespace et Socket étend EventEmitter. Cependant, ils remplacent la fonction «émettre» et la signature n'est pas compatible avec la fonction d'émission de l'EventEmitter.

Y a-t-il un moyen de contourner ce problème?

Etapes à reproduire (si le comportement actuel est un bug)

Voici mon paramètre tsconfig:

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

Voici les dépendances du projet:

"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"
  }

quand je lance: 'tsc', j'ai l'erreur suivante:

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'.

Installer

  • OS: Windows
  • Version de socket.io: 3.0.0
bug

Commentaire le plus utile

Pouvez-vous publier cette version dès que possible?

Ou ciblons directement la branche fix/typescript-emit !

Tous les 7 commentaires

Avoir le même problème ici!

Le même problème.
Debian, socket.io 3.0

Merci, j'ai pu en effet reproduire le problème.

Cela devrait être corrigé par https://github.com/socketio/socket.io/commit/50671d984a81535a6a15c704546ca7465e2ea295.

Pouvez-vous publier cette version dès que possible?

Ou ciblons directement la branche fix/typescript-emit !

Cela semble digne d'une version 3.0.1.

3.0.1 est sorti!

J'ai mis à jour l'exemple TypeScript ici: https://github.com/socketio/socket.io/tree/master/examples/typescript

Je vous remercie!

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

gCurtisCT picture gCurtisCT  ·  4Commentaires

thebinarypenguin picture thebinarypenguin  ·  4Commentaires

Elliot9 picture Elliot9  ·  4Commentaires

dmuth picture dmuth  ·  3Commentaires

Aweather picture Aweather  ·  4Commentaires