2013-10-09 15 views
2

在AMD中使用TypeScript。難道糾正導出與返回值

var name = "test"; 
return name; 

var name = "test"; 
export = name; 

做?爲什麼創建「export = name」語法?

回答

3

當您使用export =語句時,您聲明瞭外部可見成員 - 無論是變量,函數,類還是模塊。

事實上,這確實在轉換後的JavaScript代碼中被轉換爲return語句 - 但它在TypeScript類型系統中意味着更多 - 它表示要導出的項目應該替換外部模塊本身。

還有更多關於這方面的specification under 11.2.4 Export Assignments

+1

好吧,我想我明白了。關於運行時環境,這兩個語句完全相同。但是,關於編碼環境,第二個變體使得導入這些模塊的代碼知道導入模塊的類型。 – mgs

+0

這就是想法 - 您的TypeScript IDE將知道您要導入的「模塊」實際上是一個變量,而不是一個模塊。 – Fenton

0

這可能幫助:

出口=

打字稿已經內置了對外部模塊裝載機像CommonJS的和AMD,這使得在打字原稿的環境中使用Node.js的一樣的語言支持桌面以及瀏覽器中的require.js等庫。這兩個模塊系統都能夠爲模塊提供明確的值。例如,可以將「客戶」類設置爲模塊的導出值,從而允許「導入」直接導入類。打字稿0.9現在包括「出口=」支持這種使用情況

引自:http://blogs.msdn.com/b/typescript/archive/2013/06/18/announcing-typescript-0-9.aspx

我想你可能會使用這個功能,雖然不對,還是我失去了一些東西?在什麼情況下你使用這個?