2016-10-13 81 views
0

我在一个角度应用程序中使用JS的揭示模块模式。Typescript揭示模块模式

现在我要将它从Javascript迁移到Typescript,但我不知道如何在TS中使用此模式。我已经阅读了一些其他文章,如下所示,但是在函数的开头没有其他人回复。 TypeScript code similar to Revealing Module Pattern structure

angular.module('app.services') 
.factory('justAService', justAService); 

function justAService() { 

return { 
    a: a 
}; 

var x = {}; 

function a(){....} 

是否可以在顶部写回车?

谢谢

+1

不要使用图案; TypeScript有实际的模块。 https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export – Ryan

+1

把'var x = {};'返回后也没有任何意义。它永远不会被达到。它相当于声明'var x;'而不是初始化它。 – Ryan

+0

是的你是对的。为什么要使用模块而不是这种模式? –

回答

0

是的,这是可能的。它通常用于提高可读性,并且完全不影响程序执行。因为函数评估(定义)是在JavaScript执行之前发生的,所以当你的模块返回一个对函数的引用时,它已经被定义了。但它只适用于以这种方式声明的函数,否则将是无法访问的代码。

实施例:

module App{ 
    angular.module('app.services') 
     .factory('justAService', justAService); 

    function justAService() { 

     return { 
      a: a 
     }; 

     function a() { 

      var x = {}; 
     } 
    } 
} 
+0

你可以给我看一个样品吗?我试过了,但功能总是无法到达 –

+0

你究竟试过了什么?给出的例子似乎是在这种情况下。 –

+0

我编辑了我的样本。代码非常类似于示例 –