当它编译我的代码时,TypeScript 在每个文件的顶部包含一个 __extends 声明:
var __extends = this.__extends || function (d, b) {
/* istanbul ignore next */
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
这在幕后工作得很好,但在使用 karma 覆盖率之类的东西生成报告时会产生不一致。此声明包含两个函数调用和代码中的一个分支(|| 用法),它只会在第一个声明中得到执行,留下数十个(如果不是数百个)后续声明没有覆盖。这使得代码覆盖率为 100% 的文件在覆盖率报告中看起来完全没有被发现。
有人解决过这个问题吗?
最佳答案
我在 typescript codeplex 找到了一个工作项目。我希望 typescript 的家伙尽快解决这个问题。您可以在这里找到更多相关信息:typescript workitem 2002
关于多个 __extends 声明的 Typescript 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155106/