在我的IDE中,所有.ts
TypeScript文件都编译成一个文件。这包括我的单元测试文件。这允许我在我的测试和构建中进行类型检查,只需一步即可完成。但是,当我启动我的开发服务器时,它无法找到茉莉花方法describe()
,所以如果它没有定义,我就会重载它。
// If jasmine functions are not defined (i.e. not running tests) skip functions
if (describe === undefined) {
var describe = (function () { // Duplicate identifier 'describe'
return function (description: string, callback: () => void) { return }
})();
}
在jasmine.d.ts
declare function describe(description: string, specDefinitions: () => void): void;
问题是TypeScript正确识别我正在重新定义现有函数,但我打算这样做(因此if (describe === undefined)
)。
有没有办法来抑制这个错误?我想我正在寻找像function describe() implements jasmine.describe
这样的东西,但据我所知,这只适用于课程。
注意:我正在使用TypeScript 1.4
答案 0 :(得分:3)
您可以使用全局对象。
如果代码在浏览器中执行:
window['describe'] = /* ... */
或使用Node.js:
global['describe'] = /* ... */
或者,您可以使用eval
。
答案 1 :(得分:0)
最简单的解决方法是编辑jasmine.d.ts
以注释掉describe函数声明。这样做的缺点是您正在编辑库定义,每次更新定义文件时都必须重做它。