2016-10-13 101 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

我編輯了我的樣本。代碼非常類似於示例 –