好的,所以我完全相信 TypeScript 的想法,我想将它用于现有的软件项目。现在,由于 Typescript 是 javascript 的超集,这意味着我可以先将所有文件重命名为具有 .ts 扩展名而不是 .js
,然后逐渐开始转换。
但是,我在团队中并不孤单,所以我可能会一点一点地进行转换,但其他开发人员会继续使用 .ts 文件中顽皮的未类型化 JavaScript 来增加代码库的大小。
然后我的想法是有一种方法来衡量一个项目有多少百分比的真实 TypeScript(非 JavaScript),以避免通过持续集成(例如,当 TS 速率降低时中断构建),我们去向后。
这可能吗? typescript 编译器是否可以提供这种统计数据?
最佳答案
看来您想衡量代码的类型安全性。简短回答:我不知道有什么简单的方法,如果你找到了什么请告诉我 :-)
问题是,即使您的 javascript 是无类型的,也不意味着您在使用 typescript 编译它时没有对其进行类型检查。 Typescript 编译器通常可以为未类型化的 javascript 代码推断类型:
function f() {
return { a: 'a', b: 1 };
}
var x = f();
var y = x.b;
var z = x.c; // error
y = y + '1'; // error
它确实让开发人员的生活更轻松,但这意味着衡量您想要的东西并不那么容易。您可以做的一件事是尝试使用 --noImplicitAny
编译您的项目并计算它产生了多少错误 - 这将为您提供编译器无法推断出合理类型的所有地方,然后就去了使用任何
。此外,您可以捕获所有使用 tslint no-any 基本上绕过类型检查的 any
声明的实例。规则。
但在实际项目中,您通常还会有许多类型不那么严格的依赖项,这可能是必要的,也可能只是因为它们不完美。而且我认为没有办法判断 any
的出现是因为您的开发人员添加了类型不安全的代码,还是因为某些第三方依赖项需要它。
关于javascript - 测量 untyped-javascript -> typescript 转换进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766948/