Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

401
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!