如何在typescript声明文件中定义单例javascript类

时间:2016-07-19 22:08:51

标签: javascript typescript

以下代码位于我的" test-file.js"文件,我想把它移植到" test-file.d.ts"文件,以便我可以将其导入我的" test1.ts"和代码反对JavaScript"类型"在打字稿中。

我还没有能够弄清楚我的测试文件中是怎样的。#34;以这样的方式定义下面的方法,使得从Typescript中存在相同的实现。

(function(application) {

application.Message = function() {

    this.m_messageContents = "New Message";

};

application.Message.prototype.getApplicationMessageContents = function() {
    return this.m_messageContents;
};

application.SystemFactory = (function(){

var factory =
    /**
     * @lends application.SystemFactory
     */
    {
        createMessage: function() {
            return application.Message();
        }
    };
    return factory;

}());

}(application));

我不想将此文件重新编码为* .ts文件,而是如上所述,我想将其导入我的" test1.ts"。

感谢。

1 个答案:

答案 0 :(得分:0)

让我看看这对你是否合适:

declare module application {
    export class Message {
        getApplicationMessageContents(): string;
    }

    export class SystemFactory {
        static createMessage(): Message;
    }
}

你可以像这样使用:

let message = application.SystemFactory.createMessage();
let content = message.getApplicationMessageContents();

如您所见,您将static createMessage(): Message;声明为静态而不是类。