JavaRush /Курсы /Модуль 2: Fullstack /Устранение ошибок и отладка модулей

Устранение ошибок и отладка модулей

Модуль 2: Fullstack
7 уровень , 9 лекция
Открыта

10.1 Основные инструменты для устранения ошибок

Устранение ошибок и отладка модулей — это важные аспекты разработки любого программного обеспечения, но особенно в TypeScript. Процесс включает выявление, диагностику и исправление ошибок, а также улучшение кода. Ниже мы рассмотрим основные стратегии и инструменты для эффективного устранения ошибок и отладки модулей в TypeScript.

TypeScript обеспечивает строгую типизацию и статический анализ кода, что помогает выявлять многие ошибки на этапе компиляции. Однако, даже при использовании TypeScript, в процессе разработки могут возникать различные проблемы, которые требуют диагностики и исправления.

Основные инструменты:

  1. Компилятор TypeScript (tsc).
  2. Дебаггеры.
  3. Линтеры.
  4. Тестовые фреймворки.

10.2 Компилятор TypeScript (tsc)

Компилятор TypeScript — это первый инструмент для выявления и диагностики ошибок. Он помогает обнаружить синтаксические ошибки, ошибки типизации и многие другие проблемы на этапе компиляции.

Пример использования tsc:

Terminal
    
      tsc --noEmit
    
  

Параметр --noEmit позволяет выполнить компиляцию без создания выходных файлов, что удобно для быстрого поиска ошибок.

Общие ошибки компиляции

Ошибки типизации:

TypeScript
    
      let x: number = "Hello"; // Ошибка: Тип 'string' не может быть назначен типу 'number'.
    
  

Отсутствующие модули:

TypeScript
    
      import { someFunction } from './nonexistentModule'; // Ошибка: Не удается найти модуль './nonexistentModule'.
    
  

Несоответствие интерфейсов:

TypeScript
    
      interface Person {
        name: string;
        age: number;
      }

      const person: Person = { name: "John" }; // Ошибка: Отсутствует обязательное свойство 'age'.
    
  

10.3 Дебаггеры

Дебаггеры позволяют пошагово выполнять код, анализировать значения переменных и состояние программы. Популярные дебаггеры включают встроенные инструменты в редакторах, таких как Visual Studio Code.

Настройка дебаггера в Visual Studio Code

Создание конфигурации дебаггера

Создайте файл launch.json в папке .vscode вашего проекта:

JSON
    
      {
        "version": "0.2.0",
        "configurations": [
          {
            "type": "node",
            "request": "launch",
            "name": "Запуск программы",
            "skipFiles": ["<node_internals>/**"],
            "program": "${workspaceFolder}/src/index.ts",
            "preLaunchTask": "tsc: build - tsconfig.json",
            "outFiles": ["${workspaceFolder}/dist/**/*.js"]
          }
        ]
      }
    
  

Установка точек остановки

Откройте файл TypeScript и щелкните слева от строки, чтобы установить точку остановки. Запустите дебаггер, используя конфигурацию, созданную в launch.json.

10.4 Линтеры

Линтеры помогают обнаруживать потенциальные ошибки и проблемы в коде, соответствие стилям кодинга и лучшие практики. ESLint — один из самых популярных линтеров.

Установка ESLint

Terminal
    
      npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-dev
    
  

Создание конфигурации ESLint

Создайте файл .eslintrc.json в корне проекта:

JSON
    
      {
        "parser": "@typescript-eslint/parser",
        "parserOptions": {
          "ecmaVersion": 2020,
          "sourceType": "module"
        },
        "plugins": ["@typescript-eslint"],
        "extends": [
          "eslint:recommended",
          "plugin:@typescript-eslint/recommended"
        ],
        "rules": {
          // ваши правила
        }
      }
    
  

Запуск ESLint

Terminal
    
      npx eslint 'src/**/*.ts'
    
  

10.5 Тестовые фреймворки

Тестирование помогает выявлять ошибки на ранних стадиях разработки и обеспечивает уверенность в корректности работы кода. Jest — один из популярных тестовых фреймворков для TypeScript.

Установка Jest

Terminal
    
      npm install jest @types/jest ts-jest --save-dev
    
  

Создание конфигурации Jest

Создайте файл jest.config.js в корне проекта:

JavaScript
    
      module.exports = {
        preset: 'ts-jest',
        testEnvironment: 'node',
        testMatch: ['**/tests/**/*.test.ts']
      };
    
  

Добавление тестов

Создайте папку tests и добавьте тестовые файлы.

Пример tests/index.test.ts:

TypeScript
    
      import { add, subtract } from '../src/index';

      test('adds 1 + 2 to equal 3', () => {
        expect(add(1, 2)).toBe(3);
      });

      test('subtracts 5 - 2 to equal 3', () => {
        expect(subtract(5, 2)).toBe(3);
      });
    
  

Запуск тестов

Terminal
    
      npm test
    
  

10.6 Отладка распространенных проблем

Проблема: ошибка при импорте модуля.

Решение: проверьте путь к модулю и его наличие. Используйте baseUrl и paths в tsconfig.json для упрощения импортов.

JSON
    
      "compilerOptions": {
        "baseUrl": "./",
        "paths": {
          "@app/*": ["src/app/*"]
        }
      }
    
  

Проблема: ошибки типизации при использовании внешних библиотек.

Решение: установите декларации типов для библиотеки через npm.

Terminal
    
      npm install @types/library-name --save-dev
    
  

Проблема: ошибки компиляции при использовании новых возможностей TypeScript.

Решение: обновите версию TypeScript в проекте.

Terminal
    
      npm install typescript@latest --save-dev
    
  

Проблема: точки остановки не срабатывают в отладчике.

Решение: убедитесь, что карта исходников (source map) включена в tsconfig.json.

JSON
    
      "compilerOptions": {
        "sourceMap": true
      }
    
  

Советы по эффективной отладке

  1. Логирование: используйте console.log для временного логирования значений переменных и состояния программы.
  2. Малые изменения: вносите изменения небольшими шагами и часто проверяйте результаты.
  3. Версионирование: используйте системы контроля версий (например, Git) для отслеживания изменений и быстрого отката к рабочей версии.
  4. Документация: поддерживайте хорошую документацию кода и тестов для облегчения отладки и сопровождения.
3
Задача
Модуль 2: Fullstack, 7 уровень, 9 лекция
Недоступна
Проверка ошибок компиляции с tsc
Проверка ошибок компиляции с tsc
3
Задача
Модуль 2: Fullstack, 7 уровень, 9 лекция
Недоступна
Настройка ESLint для TypeScript
Настройка ESLint для TypeScript
3
Задача
Модуль 2: Fullstack, 7 уровень, 9 лекция
Недоступна
Написание тестов с использованием Jest
Написание тестов с использованием Jest
3
Опрос
Системы сборки проектов, 7 уровень, 9 лекция
Недоступен
Системы сборки проектов
Системы сборки проектов
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ