KristinaKac / meetup_2

0 stars 0 forks source link

Указание типов данных и возвращаемых функций #5

Closed annzolotareva closed 3 months ago

annzolotareva commented 3 months ago

Во всем проекте заменить тип данных any на другие типы, проставить типы переменных и возвращаемых функций, где этого нет. https://github.com/KristinaKac/meetup_2/blob/fb63bf38da7be6b2f7eabf86d32f81b48ab344c0/src/app/modules/meetup/pages/meetups-page/meetups-page.component.ts#L20

KristinaKac commented 3 months ago

https://github.com/KristinaKac/meetup_2/commit/907db72dd9e1ba05bb4ae36dac1f4e65940096be

annzolotareva commented 3 months ago

Для того, чтобы быстрее находить различные синтаксические ошибки в коде, иметь возможность узнать о способах их исправления, при разработке используют инструмент ESLint: https://eslint.org/. Он анализирует код на наличие синтаксических ошибок, а также предоставляет рекомендации по исправлению кода. Для того, чтобы ESLint начал анализировать код на наличие каких-либо ошибок, необходимо:

  1. Установить ESLint в проект согласно инструкции на сайте: https://eslint.org/docs/user-guide/getting-started.
  2. Установить расширение ESLint для своей среды разработки.
  3. Настроить конфигурационный файл ".eslintrc", который автоматически создаётся в корне проекта: указать в файле ".eslintrc" правила, которые ESLint должен применять к коду. Можно использовать рекомендуемые правила ESLint, можно самостоятельно прописать необходимые, а можно использовать рекомендуемые и их дополнять. Список правил: https://eslint.org/docs/latest/rules/. ESLint выделяет разные типы ошибок разными цветами и помечает их соответствующими метками. Цветовая маркировка и метки:

    • Ошибки: красный цвет, метка "error".
    • Предупреждения: желтый цвет, метка "warning".
    • Информация: серый цвет, метка "info". Пример указания правил для ошибок разного типа: { "rules": { // Ошибки "no-undef": "error", "no-unused-vars": "error", "no-console": "error",

    // Предупреждения "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

KristinaKac commented 3 months ago

https://github.com/KristinaKac/meetup_2/commit/20ec66b3b7fbfecbe00566fad6d04c6337722456 Добавлен EsLint, изменен паттерн email (без точки невозможна авторизация)

annzolotareva commented 3 months ago

У стрелочных функций не проставлен возвращаемый тип, а также эта ошибка не помечается image Она не такая серьёзная, на многих проектах это норма, но был и такой, где нужно было обязательно указывать тип стрелочных тоже. В целом, лучше всегда указывать. Ещё по поводу типов: если подключен 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);

KristinaKac commented 3 months ago

https://github.com/KristinaKac/meetup_2/commit/507d50a2ffef44b39b268e19d124ac41285ee547 (добавлено правило возвращения типа у стрелочных функций)

KristinaKac commented 3 months ago

https://github.com/KristinaKac/meetup_2/commit/6327a015cd831c9e25ad1484a2746cf64e7b05e6 nx deleted