【问题标题】:How to use an exported function within the local module如何在本地模块中使用导出的函数
【发布时间】:2013-10-09 05:29:41
【问题描述】:

这是我想在 Typescript 中执行的 Javascript 版本,需要注意的重要一点是我从 exports.error 函数(“exports.inform”)中引用 exports.inform 的方式:

exports.error = function(_string, _kvp){
    for(var _i = 0; _i < server.clients.length; _++i){
        if(server.clients[_i] != undefined && server.clients[_i].isValid()){
            exports.inform(server.clients[_i], _string, _kvp);
        }
    }
}

exports.inform = function(_client, _string, _kvp){
    var _output = tag + processAll(_string, _kvp);
    _client.printToChat(_output);
}

这是我在 Typescript 中的等价物,但是在函数“错误”(“通知”)中错误地引用了“导出函数通知”:

export function error(_str:string, _kvp:Object) {
    for (var _i: number = 0; _i < server.clients.length; ++_i) {
        if (server.clients[_i] != undefined && server.clients[_i].isValid()) {
            inform(server.clients[_i], _str, _kvp);
        }
    }
}

export function inform(_client:Entity, _str:string, _kvp:Object) {
    var _output = tag + processAll(_str, _kvp);
    _client.printToChat(_output);
}

抱歉解释的含糊不清,希望您理解,如果太难理解,请尽量澄清。

编辑:它给我的错误是在参数中执行字符串连接引起的“无效调用签名”,TS 显然不允许(除非在右括号中),所以 Ryan 的评论是正确的:只需调用 inform .谢谢尼潘。

【问题讨论】:

  • “引用不正确”是什么意思?生成的JS是不是有问题(如果有,应该贴出来)?
  • 不,从本地模块内部引用inform函数的方法在Typescript中是不同的,我不知道该怎么做。在普通的 JS 中,我会调用函数:exports.inform,通过键入 exports.inform。现在,在TS中同样的场景下,我创建了函数export function inform,在同一个模块中怎么调用呢?
  • 您只需拨打inform

标签: typescript


【解决方案1】:

我不完全确定我是否了解您的问题或您为此尝试做的事情。但是,如果我对您的理解正确,以下应该可以工作:

module exports {

    export function error(message: string){

        inform(message);
    }

    export function inform(message: string) {

        alert(message);
    }   
}

exports.error("some message");

然而,将函数放在这样的类中可能会更好:

class exports {

    public static error(message: string) {
        exports.inform(message);
    }

    public static inform(message: string) {
        alert(message);
    }   
}

exports.error("一些消息");

我可能会误解您要做什么......请告诉我。

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2021-10-03
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多