首页 文章

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

提问于
浏览
0

我正在学习TypeScript,我正在使用node.js和ws构建一个小型示例应用程序 . 我已经为两者下载了定义文件 . node.js的文件似乎工作正常 . 我不知道如何使用ws.d.ts文件中的类型 .

ws.d.ts文件来自Definitely Typed: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 回答

  • 1

    你只需这样写:

    import * as websockets from 'ws';
    

    然后:

    let wsServer = new websockets.Server({ port: 1234 });
    wsServer.on('connection', (client) => 
    {
     ....
    
  • 1

    最终让它工作,你需要这样做:

    import ws = require('ws');
    

    在您的代码中,并使用 --module commonjs 标志运行tsc.exe . 如果您正在使用Sublime Text并希望它与其Typescript插件一起使用,则必须在目录中放置tsconfig.json:

    {
        "compilerOptions": {
            "module": "commonjs"
        }
    }
    

    ...并通过Package Control安装Arctic Typescript插件,因为默认设置只是不播放球 .

相关问题