打字稿中是否有用于静态代码分析的好工具?

时间:2014-11-24 13:13:48

标签: dependencies typescript static-analysis metrics code-metrics

我们一直在寻找测量TypeScript代码质量的好工具。主要是,我们感兴趣的是测量Cyclomatic Complexity,LCOM,不稳定性和类似指标。用于可视化模块之间依赖关系的工具也很不错。

一种“NDepend for typescript”会很棒 - 但是我们找不到类似的东西......

有人能指出我们提供某些此类功能的工具的方向吗?

3 个答案:

答案 0 :(得分:4)

  

我们一直在寻找测量TypeScript代码质量的好工具

类似于针对TypeScript的JSHint(Steve提到),有TSLint https://github.com/palantir/tslint(带有grunt插件https://github.com/palantir/grunt-tslint

根据TypeScript语言服务ASTWalker机制创建自己的角色并不复杂,例如缩进规则:https://github.com/palantir/tslint/blob/master/src/rules/indentRule.ts

答案 1 :(得分:1)

如果您要使用现有的JavaScript分析器,例如JSHint(或任何类似的替代品,如果它没有您想要的所有指标),那么结果对于您的TypeScript代码来说就不会有太大的错误。 TypeScript只进行了很少的代码转换,因此您会发现以下几个方面存在细微差别:

  • 如果您使用继承,程序中将有一个额外的方法。
  • 如果使用rest参数,则使用rest参数向每个方法添加到数组的映射。
  • Enums生成更复杂的JavaScript代码。

但这些都不会使分析大幅度下降。

来自JSHint网站的示例指标:

  

度量

     

此文件中只有一个功能。

     

不需要任何参数。

     

此函数只包含一个语句。

     

此函数的循环复杂度编号为1。

答案 2 :(得分:0)

为了可视化TypeScript模块依赖项,您可以使用JavaScript模块依赖项可视化工具:

  • Kenneth Auchenberg的dependo。使用交互式图形创建单文件SPA
  • Patrik Henningsson的MaDGe。使用Graphviz
  • 创建报告和静态图像
  • ...