JavaRush /Курсы /Модуль 2: Fullstack /Настройка TypeScript конфигурации

Настройка TypeScript конфигурации

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

Создание файла tsconfig.json

Для управления процессом компиляции TypeScript использует конфигурационный файл tsconfig.json. Этот файл содержит настройки и параметры, которые определяют, как компилятор TypeScript должен обрабатывать ваш проект. Сейчас вы научитесь работать с ним.

Создание файла tsconfig.json

Вы можете создать файл tsconfig.json вручную или с помощью команды tsc --init, которая автоматически создаст файл с предустановленными значениями.

Terminal
    
      tsc --init
    
  

Этот файл содержит множество параметров, которые можно настроить для вашего проекта. Давайте рассмотрим некоторые из самых важных и часто используемых настроек.

Основные параметры компилятора

1. Параметр compilerOptions

Раздел compilerOptions содержит различные параметры, которые управляют поведением компилятора.

Пример базового tsconfig.json:

JSON
    
      {
        "compilerOptions": {
          "target": "es5",
          "module": "commonjs",
          "strict": true,
          "esModuleInterop": true,
          "skipLibCheck": true,
          "forceConsistentCasingInFileNames": true,
          "outDir": "./dist"
        },
        "include": ["src/**/*"],
        "exclude": ["node_modules", "dist"]
      }
    
  

Рассмотрим некоторые из этих параметров подробнее.

2. Параметр target

Параметр target определяет версию ECMAScript, в которую будет транслироваться ваш TypeScript код. Возможные значения включают: es3, es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2022, es2024, esnext.

Пример:

JSON
    
      "target": "es6"
    
  

2. Параметр module

Параметр module указывает систему модулей, которую должен использовать компилятор. Возможные значения включают: commonjs, amd, system, umd, es6/es2015, esnext, none.

Пример:

JSON
    
      "module": "commonjs"
    
  

4. Параметр strict

Параметр strict включает строгий режим проверки типов. Это объединяет несколько параметров, таких как noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, strictPropertyInitialization, noImplicitThis, и alwaysStrict.

Пример:

JSON
    
      "strict": true
    
  

5. Параметр esModuleInterop

Параметр esModuleInterop включает поддержку для совместимости с модулями ES, обеспечивая корректную работу с импортом модулей CommonJS.

Пример:

JSON
    
      "esModuleInterop": true
    
  

6. Параметр skipLibCheck

Параметр skipLibCheck пропускает проверку типов в файлах деклараций. Это может ускорить компиляцию в больших проектах.

Пример:

JSON
    
      "skipLibCheck": true
    
  

7. Параметр forceConsistentCasingInFileNames

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

Пример:

JSON
    
      "forceConsistentCasingInFileNames": true
    
  

6.2 Параметры для организации проекта

1. Параметр outDir

Параметр outDir указывает директорию для вывода скомпилированных файлов. Это полезно для организации структуры вашего проекта и разделения исходных файлов TypeScript и скомпилированных файлов JavaScript.

Пример:

JSON
    
      "outDir": "./dist"
    
  

2. Параметр include

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

Пример:

JSON
    
      "include": ["src/**/*"]
    
  

3. Параметр exclude

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

Пример:

JSON
    
      "exclude": ["node_modules", "dist"]
    
  

6.3 Дополнительные параметры компилятора

1. Параметр rootDir

Параметр rootDir указывает корневую директорию исходных файлов TypeScript. Это помогает компилятору определить относительные пути и структуру проекта.

JSON
    
      "rootDir": "./src"
    
  

2. Параметр sourceMap

Параметр sourceMap включает генерацию source maps, которые позволяют вам отлаживать ваш TypeScript код в браузере или другом отладчике, отображая исходный TypeScript код вместо скомпилированного JavaScript.

Пример:

JSON
    
      "sourceMap": true
    
  

3. Параметр declaration

Параметр declaration включает генерацию файлов деклараций (.d.ts). Эти файлы содержат информацию о типах и могут быть полезны для проектов, которые используют ваш код как библиотеку. Подробнее о файлах деклараций вы узнаете в следующих лекциях.

Пример:

JSON
    
      "declaration": true
    
  

4. Параметр removeComments

Параметр removeComments указывает компилятору удалять комментарии из скомпилированных файлов JavaScript. Это может быть полезно для уменьшения размера конечных файлов.

Пример:

JSON
    
      "removeComments": true
    
  

5. Параметр noEmit

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

Пример:

JSON
    
      "noEmit": true
    
  

6. Параметр incremental

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

Пример:

JSON
    
      "incremental": true
    
  

6.4 Оптимизация компиляции

1. Параметр noImplicitAny

Параметр noImplicitAny запрещает неявное присваивание типа any переменным и параметрам. Это помогает обнаруживать потенциальные ошибки в коде.

Пример:

JSON
    
      "noImplicitAny": true
    
  

2. Параметр strictNullChecks

Параметр strictNullChecks включает строгую проверку на null и undefined. Это помогает избежать ошибок, связанных с доступом к свойствам или вызовом методов на значениях, которые могут быть null или undefined.

Пример:

JSON
    
      "strictNullChecks": true
    
  

3. Параметр strictFunctionTypes

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

Пример:

JSON
    
      "strictFunctionTypes": true
    
  

4. Параметр noImplicitThis

Параметр noImplicitThis запрещает неявное присваивание типа any ключевому слову this. Это помогает обнаруживать ошибки, связанные с некорректным использованием this.

Пример:

JSON
    
      "noImplicitThis": true
    
  
3
Задача
Модуль 2: Fullstack, 3 уровень, 5 лекция
Недоступна
Базовая настройка tsconfig.json
Базовая настройка tsconfig.json
3
Задача
Модуль 2: Fullstack, 3 уровень, 5 лекция
Недоступна
Настройка include/exclude
Настройка include/exclude
3
Задача
Модуль 2: Fullstack, 3 уровень, 5 лекция
Недоступна
Генерация Source Maps
Генерация Source Maps
3
Задача
Модуль 2: Fullstack, 3 уровень, 5 лекция
Недоступна
Инкрементальная компиляция
Инкрементальная компиляция
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ