我正在学习TypeScript,我正在使用node.js和ws构建一个小样本应用程序。我已经为两者下载了定义文件。 node.js的文件似乎工作正常。我不知道如何使用ws.d.ts文件中的类型。
ws.d.ts文件来自绝对类型:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/ws/ws.d.ts
我的脚本的重要部分是:
/// <reference path="typings/node/node.d.ts" />
/// <reference path="typings/ws/ws.d.ts" />
(function(){
const WebSocketServer = require('ws').Server;
// does things here
}());
脚本工作正常,但我无法添加类型信息。我试过了:
const WebSocketServer: ws.WebSocket.Server = require('ws').Server;
const WebSocketServer: WebSocket.Server = require('ws').Server;
const WebSocketServer: Server = require('ws').Server;
...但是编译器总是抱怨它找不到名称“ws / WebSocket / Server” - 无论名称的第一部分是哪一个。
如何引用d.ts文件中定义的类型?
答案 0 :(得分:1)
你只需这样写:
import * as websockets from 'ws';
然后再说:
let wsServer = new websockets.Server({ port: 1234 });
wsServer.on('connection', (client) =>
{
....
答案 1 :(得分:1)
最终让它发挥作用,你需要这样做:
import ws = require('ws');
在代码中,并使用--module commonjs
标志运行tsc.exe。如果您正在使用Sublime Text并希望它能够使用他们的Typescript插件,则必须在目录中放置tsconfig.json:
{
"compilerOptions": {
"module": "commonjs"
}
}
...并通过Package Control安装Arctic Typescript插件,因为默认设置只是不玩球。