2014-09-25 24 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了解更多详情。

我希望这对你仍然有帮助。

相关问题