Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

411
Vistas
socket.io Typescript no puede crear un servidor, "Esta expresión no se puede llamar"

Tengo el siguiente código (servidor):

 import express from "express"; import socketio from "socket.io"; import http from "http"; const app = express(); const server = http.createServer(app); const io = socketio(server); server.listen(process.env.port || 3000, () => { console.log(`App running on port ${process.env.port || 3000}`); });

Pero me sale un error en const io = socketio(server); , Afirma:

Esta expresión no es invocable. Escriba 'typeof import("SOME_PATH/node_modules/socket.io/dist/index")' no tiene firmas de llamada

¿Cuál es exactamente el problema aquí?

paquete.json:

 "devDependencies": { "@types/express": "^4.17.11", "@types/node": "^14.14.27", "@types/socket.io": "^2.1.13", "nodemon": "^2.0.7", "ts-node": "^9.1.1" }, "dependencies": { "express": "^4.17.1", "socket.io": "^3.1.1", "typescript": "^4.1.5" }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

La API cambió en la versión 3. Este problema aquí tiene cierta discusión.

El nuevo equivalente de su ejemplo sería

 import express from "express"; import { Server } from "socket.io"; import http from "http"; const app = express(); const server = http.createServer(app); const io = new Server(server); server.listen(process.env.port || 3000, () => { console.log(`App running on port ${process.env.port || 3000}`); });

Como nota al margen, socket.io se reescribió en mecanografiado, por lo que ya no necesita tener @types/socket.io.

over 4 years ago · Santiago Trujillo Denunciar

0

No estoy seguro de eso, pero el problema parece estar en la forma en que socket.io describe su propia exportación predeterminada.

Resolví esto emitiéndolo como cualquier

 import io from 'socket.io'; const server = (io as any)(http);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda