【问题标题】:how can i refer to a value in typescript我如何在打字稿中引用一个值
【发布时间】:2015-02-25 09:02:59
【问题描述】:

server.ts

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var fs = require('fs');


import WonServer = require('./WonServer');

var server = new WonServer.WonServer();

WonServer.ts

export class WonServer {
    constructor() {
    }
    load() {
        console.log("loaded");
        io.emit('userlist', "asdsadsad");
    }
    sendMessage( msgtype:string, data:string) {
        io.emit(msgtype, data);
    }
}

您好,我正在 node.js 中创建服务器

如何在 WonServer.js 中引用一个值 io(socket.io)

【问题讨论】:

  • 在构造函数中传入io。

标签: javascript node.js requirejs typescript commonjs


【解决方案1】:

一般原则

对于每个需要使用依赖项的文件,应该有一个require 语句,或者一个接受所需类型参数的构造函数。

除非您通过在构造函数上使用参数来要求参数,否则您不能依赖层次结构中更高的文件为您加载依赖项 - 所以您明确要求它。如果文件已经在内存中,则不会再次加载,所以第二次访问会非常快。

具体答案

在你的情况下,你可以在构造函数中请求它。

export class WonServer {
    constructor(private io: SocketIOStatic) {
    }
    load() {
        console.log("loaded");
        this.io.emit('userlist', "asdsadsad");
    }
    sendMessage( msgtype:string, data:string) {
        this.io.emit(msgtype, data);
    }
}

【讨论】:

  • 我同意这个答案,如果不是很明显,也值得一提:var server = new WonServer(io);
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 2017-05-07
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多