首页 > 解决方案 > 这个socket.io javascript示例如何翻译成打字稿

问题描述

我正在测试 socket.io 包并使用“聊天示例”(https://socket.io/get-started/chat/),它在 javascript 中运行良好。

但是,我想将该示例翻译为 TypeScript。15行代码。应该很容易吧?但不,我坚持这一点。

如果文件扩展名是 .js,vscode 的智能感知会识别“必需”类型,但是一旦我将扩展名更改为 .ts,则不再识别这些类型。我试图将 'require' 语句转换为 'import' 语句,但这似乎也不起作用。什么是下面代码的正确打字稿等价物

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 3000;

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

http.listen(port, function(){
  console.log('listening on *:' + port);
});

标签: javascripttypescriptsocket.iotypescript-typings

解决方案


您是否尝试过如下导入?

import express from 'express';
import http from 'http';
import io from 'socket.io';

像这样导入是行不通的

import { express } from 'express';
import { http } from 'http';
import { io } from 'socket.io';

推荐阅读