打字稿中有啥好的静态代码分析工具吗? [关闭]
Posted
技术标签:
【中文标题】打字稿中有啥好的静态代码分析工具吗? [关闭]【英文标题】:Are there any good tools for static code analysis in typescript? [closed]打字稿中有什么好的静态代码分析工具吗? [关闭] 【发布时间】:2015-01-22 05:14:06 【问题描述】:我们一直在寻找衡量 TypeScript 代码质量的好工具。我们主要对测量圈复杂度、LCOM、不稳定性和类似指标感兴趣。可视化模块之间依赖关系的工具也不错。
一种“NDepend for typescript”会很棒 - 但我们找不到类似的东西......
任何人都可以为我们指明提供此类功能的任何工具的方向吗?
【问题讨论】:
【参考方案1】:我们一直在寻找衡量 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
【讨论】:
【参考方案2】:为了可视化 TypeScript 模块依赖关系,您可以使用 javascript 模块依赖关系可视化工具:
Kenneth Auchenberg 的dependo。使用交互式图表创建单文件 SPA Patrik Henningsson 的MaDGe。使用Graphviz
创建报告和静态图像
...
【讨论】:
【参考方案3】:如果您要使用现有的 JavaScript 分析器,例如 JSHint(或任何类似的替代方案,如果它没有您想要的所有指标),那么您的 TypeScript 代码的结果不会有太大的错误。 TypeScript 很少进行代码转换,因此您会发现以下方面的细微差别:
如果您使用继承,您的程序中会多出一种方法。 如果您使用剩余参数,则会将到数组的映射添加到每个带有剩余参数的方法中。 枚举生成更复杂的 JavaScript 代码。但这些都不会大大影响分析。
来自 JSHint 站点的示例指标:
指标
这个文件只有一个函数。
不需要参数。
这个函数只包含一个语句。
此函数的圈复杂度数为 1。
【讨论】:
以上是关于打字稿中有啥好的静态代码分析工具吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章