Tengo algunos problemas para compilar mi código de mecanografiado a javascript.
La compilación falla debido a un error de tipo en namespace.d.ts y socket.d.ts。La clase Namespace y Socket extiende EventEmitter. Sin embargo, anulan la función 'emitir' y la firma no es compatible con la función de emisión del EventEmitter.
¿Hay alguna forma de evitarlo?
A continuación se muestra mi configuración de tsconfig:
{
"compileOnSave": true,
"compilerOptions": {
"outDir": "./dist",
"lib": ["es5", "es6"],
"target": "es3",
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"allowSyntheticDefaultImports": true,
},
"include": ["./src/**/*"],
}
Aquí están las dependencias del proyecto:
"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"
}
cuando ejecuto: 'tsc', aparece el siguiente error:
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'.
¡Teniendo el mismo problema aquí!
El mismo problema.
Debian, socket.io 3.0
Gracias, de hecho pude reproducir el problema.
Esto debería solucionarse en https://github.com/socketio/socket.io/commit/50671d984a81535a6a15c704546ca7465e2ea295.
¿Puedes lanzar esta versión lo antes posible?
¡O apuntemos directamente a la rama fix/typescript-emit
!
Esto parece digno de una versión 3.0.1.
¡3.0.1 ya está disponible!
He actualizado el ejemplo de TypeScript aquí: https://github.com/socketio/socket.io/tree/master/examples/typescript
¡Gracias!
Comentario más útil
¿Puedes lanzar esta versión lo antes posible?
¡O apuntemos directamente a la rama
fix/typescript-emit
!