打字稿的新手,是我的AMD理解正确吗?

时间:2013-10-15 13:15:20

标签: javascript typescript amd

我是打字稿的新手(和javascript一样)。我整理了一个小小的测试,看看我是否可以根据阅读AMD的内容,查看基于JS的要求并查看TS文档来做以下内容。

  • 两个名称空间Foo&测试
  • 导入测试命名空间
  • 创建实例定义
  • 创建单身人士

Test.ts

 export class TestClass {
     constructor() {
     }

     testMethod(): void {
     }
 }

 export function Singleton(): void {
 }

Foo.ts

 import Test = require('Test');

 export class Bar {
     private instance = new Test.TestClass();
     private singleton = Test.Singleton;

     constructor() {
         this.instance.testMethod();
         this.singleton();
     }
 }

生成JS

// Foo.js
define(["require", "exports", 'Test'], function(require, exports, __Test__) {
    var Test = __Test__;

    var Bar = (function () {
        function Bar() {
            this.instance = new Test.TestClass();
            this.singleton = Test.Singleton;
            this.instance.testMethod();
            this.singleton();
        }
        return Bar;
    })();
    exports.Bar = Bar;
});

// Test.js
define(["require", "exports"], function(require, exports) {
    var TestClass = (function () {
        function TestClass() {
        }
        TestClass.prototype.testMethod = function () {
        };
        return TestClass;
    })();
    exports.TestClass = TestClass;

    function Singleton() {
    }
    exports.Singleton = Singleton;
});

根据我上面的代码,我的列表是我想要做的正确吗?如果是这样,如果不是,我想我可能会误解一些关于AMD的事情:(

1 个答案:

答案 0 :(得分:2)

您对AMD的理解是完美无暇的。但是,您对单例模式的理解是不正确的。看一下这个例子:http://www.codebelt.com/typescript/typescript-singleton-pattern/