Closed annzolotareva closed 3 months ago
Для того, чтобы быстрее находить различные синтаксические ошибки в коде, иметь возможность узнать о способах их исправления, при разработке используют инструмент ESLint: https://eslint.org/. Он анализирует код на наличие синтаксических ошибок, а также предоставляет рекомендации по исправлению кода. Для того, чтобы ESLint начал анализировать код на наличие каких-либо ошибок, необходимо:
Настроить конфигурационный файл ".eslintrc", который автоматически создаётся в корне проекта: указать в файле ".eslintrc" правила, которые ESLint должен применять к коду. Можно использовать рекомендуемые правила ESLint, можно самостоятельно прописать необходимые, а можно использовать рекомендуемые и их дополнять. Список правил: https://eslint.org/docs/latest/rules/. ESLint выделяет разные типы ошибок разными цветами и помечает их соответствующими метками. Цветовая маркировка и метки:
// Предупреждения "no-var": "warn", "prefer-const": "warn", "no-trailing-spaces": "warn",
// Информация "no-multiple-empty-lines": "info", "padded-blocks": "info", "no-irregular-whitespace": "info" } }
Для просмотра списка текущих ошибок необходимо в терминале ввести команду ng lint. Это следует делать перед каждым пушем .
Прикрепляю пример настроенного файла .eslintrc.json из CodeStyle регламента разработки: eslintrc.json Ещё хороший пример: .eslintrc.json
https://github.com/KristinaKac/meetup_2/commit/20ec66b3b7fbfecbe00566fad6d04c6337722456 Добавлен EsLint, изменен паттерн email (без точки невозможна авторизация)
У стрелочных функций не проставлен возвращаемый тип, а также эта ошибка не помечается Она не такая серьёзная, на многих проектах это норма, но был и такой, где нужно было обязательно указывать тип стрелочных тоже. В целом, лучше всегда указывать. Ещё по поводу типов: если подключен ESLint, установлены правила на их обязательное указание, но, по каким-то причинам, не получается типизировать, можно поставить unknown. Если unknown не подходит, либо же обоснованно нужен тип "any", то можно использовать ESLint suppress комментарии, которые отключают правила для конкретных строк или блоков кода. Примечание: такие комментарии следует использовать только при необходимости и с осторожностью. Пример: в коде, который приведён ниже, используется комментарий "// eslint-disable-next-line @typescript-eslint/no-explicit-any", который отключает правило "no-explicit-any" для следующей за ним строки:
import { Chart } from 'chart.js'; public chart?: Chart<'bar', string[], unknown>; private createChart(): void { this.chart = new Chart('stackedColumnHundredChart', { // eslint-disable-next-line @typescript-eslint/no-explicit-any } as any);
https://github.com/KristinaKac/meetup_2/commit/507d50a2ffef44b39b268e19d124ac41285ee547 (добавлено правило возвращения типа у стрелочных функций)
Во всем проекте заменить тип данных any на другие типы, проставить типы переменных и возвращаемых функций, где этого нет. https://github.com/KristinaKac/meetup_2/blob/fb63bf38da7be6b2f7eabf86d32f81b48ab344c0/src/app/modules/meetup/pages/meetups-page/meetups-page.component.ts#L20