2014-10-01 52 views
1

鑑於以下Typescript它似乎編譯具有相同名稱的多個變量。Typescript模塊編譯重複變量

我包括一個簡短的例子,假設兩個獨立的文件使用相同的頂級模塊名稱。我正在編譯成一個文件。

文件1

module Parent { 
    export module Child1 { 
     export class TestClass { 
     } 
    } 
} 

文件2

module Parent { 
    export module Child2 { 
     export class TestClass { 
     } 
    } 
} 

編譯爲

var Parent; 
(function (Parent) { 
    (function (Child1) { 
     var TestClass = (function() { 
      function TestClass() { 
      } 
      return TestClass; 
     })(); 
     Child1.TestClass = TestClass; 
    })(Parent.Child1 || (Parent.Child1 = {})); 
    var Child1 = Parent.Child1; 
})(Parent || (Parent = {})); 

var Parent; 
(function (Parent) { 
    (function (Child2) { 
     var TestClass = (function() { 
      function TestClass() { 
      } 
      return TestClass; 
     })(); 
     Child2.TestClass = TestClass; 
    })(Parent.Child2 || (Parent.Child2 = {})); 
    var Child2 = Parent.Child2; 
})(Parent || (Parent = {})); 

通知重複var Parent;聲明。我如何防止這種情況?或者這不是一個問題?

回答

3

我該如何預防?或者這不是一個問題?

你不能阻止它。它不是一個問題。如果您使用純JS,你仍然會做你的文件的頂部:

var Parent = Parent || {}; 

打字稿只是被安全+以下允許你做局部範圍的變量(如果你仍然會做同樣的JS想要一個本地範圍)。

var Parent; 
(function (Parent) { 
    // local scope only 
})(Parent || (Parent = {})); 
相關問題