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代码>