引用* .d.ts文件中的类型

时间:2016-01-15 12:44:30

标签: typescript

我正在学习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文件中定义的类型?

2 个答案:

答案 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插件,因为默认设置只是不玩球。