Javascript 使用JS测试文件中的Karma和Jasmine测试编译的TypeScript

Javascript 使用JS测试文件中的Karma和Jasmine测试编译的TypeScript,javascript,node.js,typescript,requirejs,karma-jasmine,Javascript,Node.js,Typescript,Requirejs,Karma Jasmine,我有一个具有以下结构的项目: build - out.js spec - foo.spec.js - bar.spec.js src - foo.ts - bar.ts 这两个.ts文件内置在out.js中。在我的.spec.js文件中,我希望能够轻松地引用out.js 在纯JS项目中使用Karma/Jasmine时,我只需使用RequireJS,并将测试文件包装在define(['a'],function(a){…})中文件。然后,在a.js中,内容将按如下方式包装: define([],

我有一个具有以下结构的项目:

build
- out.js
spec
- foo.spec.js
- bar.spec.js
src
- foo.ts
- bar.ts
这两个.ts文件内置在
out.js
中。在我的
.spec.js
文件中,我希望能够轻松地引用
out.js

在纯JS项目中使用Karma/Jasmine时,我只需使用RequireJS,并将测试文件包装在
define(['a'],function(a){…})中文件。然后,在
a.js
中,内容将按如下方式包装:

define([], function() {
    Foo.prototype. .......
    Foo.prototype. .......

    return Foo; 
});
但是,由于out.js将由TypeScript编译器生成,因此无法包装在
define(…)
块中,因此我无法使用RequireJS正确导入它


澄清:

使用手写JS,如下面所示,我可以很好地将其导入到我的测试文件中:

define([], function() {
    function Bla() { }
    Bla.prototype.hi = function () {
        return "hey";
    };
    return Bla;
});
使用类似的JS,但使用TypeScript编译器构建,因此缺少
define([])
包装,当我将其导入测试时,我只得到
undefined

var Bla = (function () {
    function Bla() { }
    Bla.prototype.hi = function () {
        return "hey";
    };
    return Bla;
})();
如何将TypeScript编译器配置为将已编译的类包装在
define()
包装中,或者如何将测试配置为导入类而不将其包装在
define()
包装中?

您应该使用参数

在visual studio 2015中:项目/“您的项目”属性/类型脚本构建/模块系统/amd

接下来:

bla.ts:

函数Bla(){
}
Bla.prototype.hi=函数(){
返回“嘿”;
};
导出=Bla