如何在本地模块中使用导出的函数

时间:2013-10-09 05:29:41

标签: typescript

这是我想在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中的等价物,但&#34;导出功能告知&#34;在函数&#39;错误&#39;中被错误地引用(&#34;通知&#34):

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);
}

对于模糊的解释感到抱歉,我希望你理解,并会尽力澄清它是否难以理解。

编辑:它给我的错误是“无效的通话签名”#39;通过在参数内执行字符串连接而导致TS显然不允许(除非在闭括号中),所以Ryan的评论是正确的:只需调用inform。谢谢Nypan。

1 个答案:

答案 0 :(得分: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(“some message”);

我可能会误解你要做的事情。让我知道。