Подтвердить что ты не робот

Есть ли хорошие инструменты для анализа статического кода в typescript?

Мы искали хорошие инструменты для измерения качества нашего кода TypeScript. В основном нас интересует измерение Cyclomatic Complexity, LCOM, неустойчивости и аналогичных показателей. Также будет полезно средство визуализации зависимостей между модулями.

Какой-то "NDepend для typescript" был бы замечательным, но мы не смогли найти ничего подобного...

Может ли кто-нибудь указать нам в сторону любых инструментов, которые предоставляют некоторые такие функции?

4b9b3361

Ответ 1

Мы искали хорошие инструменты для измерения качества нашего кода TypeScript

Подобно JSHint (упомянутому Стивом) для TypeScript существует 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

Если бы вы использовали существующий анализатор JavaScript, например JSHint (или любую аналогичную альтернативу, если он не имеет всех метрики, которые вы хотите), результаты не будут ошибочными для вашего кода TypeScript. TypeScript делает очень мало преобразований кода, поэтому вы найдете незначительные отличия в следующих областях:

  • Если вы используете наследование, в вашей программе будет еще один метод.
  • Если вы используете параметры отдыха, сопоставление с массивом добавляется к каждому методу с параметрами отдыха.
  • Перечисления генерируются в более сложный код JavaScript.

Но ни один из них не мог бы отбросить анализ с большим отрывом.

Пример показателей из сайта JSHint:

Метрики

В этом файле есть только одна функция.

Он не принимает аргументов.

Эта функция содержит только одно утверждение.

Число циклической сложности для этой функции равно 1.

Ответ 3

Для визуализации зависимостей модуля TypeScript вы можете использовать визуализаторы зависимостей JavaScript-модуля:

  • Kenneth Auchenberg dependo. Создает одиночный файл SPA с интерактивным графиком.
  • Patrik Henningsson MaDGe. Создает отчет и статическое изображение с помощью Graphviz
  • ...