2014-09-25 58 views
2

我完全困惑我在做什麼錯在這裏。量角器和Typescript:類定義在不同的文件,但相同的模塊導致'聲明異常'

說我有一個測試文件「SimpleTest.ts」包含以下:

/// <reference path="../otherdir/simpleclass.ts" /> 
module MyModule.SubModule { 
    describe("this test",() => { 
     var myObject: SimpleClass = new SimpleClass(""); 

     it("doesn't even get here!",() => { 
      expect(myObject).toBeDefined(); 
     }); 
    }); 
} 

此處的類是在不同的文件中定義,但在同一模塊中,這樣的:

module MyModule.SubModule { 
    export class SimpleClass { 
     constructor(private myMember: string) {} 
    } 
} 

所以這兩個定義都駐留在同一個模塊中。 Typescript編譯好,一切看起來都OK。

但是當我開始量角器(是的,我已經配置「功能:」路徑正確的文件),它與錯誤

this test 
    encountered a declaration exception - fail 

我知道,我能得到它通過使用模塊的工作停止.export和require,但這不是一個好的解決方案。

首先,我鬆散了打字稿的類型檢查,當我使用javascript'require'時,類型檢查是我首先使用它的原因之一。

二,我認爲這是糟糕的風格混合普通的JavaScript到打字稿代碼。

任何幫助,將不勝感激!

由於提前, 問候, 約爾格

+0

TypeScript將很高興地爲commonjs和amd模塊輸出代碼。我正在使用Jasmine(這是Protractor使用的)模塊 - 我正在使用AMD,這有點棘手,因爲你需要讓Jasmine等待,直到你準備好了。 http://www.stevefenton.co.uk/Content/Blog/Date/201407/Blog/Combining-TypeScript-Jasmine-And-AMD-With-RequireJS/ – Fenton 2014-09-26 07:49:13

+0

您是否找到了解決方案?我有同樣的問題,直到現在還找不到任何解決方案。 – Milton 2015-03-11 17:47:24

回答

0

停止使用內部模塊。

當試圖理解TypeScript時,它誠實地幫了我很多。 我對內部TypeScript模塊的使用經驗回答了here 。 你可以閱讀Steve Fenton的文章here瞭解更多詳情。

我希望這對你仍然有幫助。

相關問題