2012-10-24 304 views
1

我正在使用TypeScript。TypeScript /導入和導出模塊/類 - 運行導入類時運行時錯誤

我有內部文件String.ts以下:

module Sgc.Sys { 
    "use strict"; 
    export class String {  
     static trim(input: string): string { 
      return input.replace(/^\s+|\s+$/g, ""); 
     }; 
//-- other methods below ... 
    } 
} 

然後,在文件Number.ts(位於String.ts的相同的文件夾)我使用的方法Sgc.Sys。 String.trim()中所定義:

module Sgc.Sys { 
    "use strict"; 
    export class Number { 

    static someMethod(input : string) : string { 
      //-- some code 
      var str = Sgc.Sys.String.trim(input); 
      return str; 

     }; 
    } 
} 

問題:Sgc.Sys.String的方法修整必須定義/如上稱爲被接受withou通過打字稿誤差;但是在運行時,Sgc.Sys.String是未定義的,因此Sgs.Sys.String.trim(input)會引發異常。

當String.ts和Number.ts都在同一個文件夾中時,我應該能夠從Sgc.Sys.Number中調用Sgc.Sys.String.trim .. \ Sgc \ Sys?

感謝, MG

回答

2

您必須添加一個引用到Number.ts文件:

/// <reference path="String.ts" /> 
0

如果你在運行時的錯誤,你需要確保你在既包括編譯JavaScript文件你的頁面。

我假設您沒有使用基於代碼示例的模塊加載。

<script src="/Sgc/Sys/String.js"></script> 
<script src="/Sgc/Sys/Number.js"></script> 

其他注意事項...

打字稿目標的ECMAScript 3默認情況下,讓你的「使用嚴格」的語句將不會有任何效果 - 你需要的目標的ECMAScript 5此功能。