Создание файла tsconfig.json
Для управления процессом компиляции TypeScript использует конфигурационный файл tsconfig.json. Этот файл содержит настройки и параметры, которые определяют, как компилятор TypeScript должен обрабатывать ваш проект. Сейчас вы научитесь работать с ним.
Создание файла tsconfig.json
Вы можете создать файл tsconfig.json вручную или с помощью команды tsc --init, которая автоматически создаст файл с предустановленными значениями.
tsc --init
Этот файл содержит множество параметров, которые можно настроить для вашего проекта. Давайте рассмотрим некоторые из самых важных и часто используемых настроек.
Основные параметры компилятора
1. Параметр compilerOptions
Раздел compilerOptions содержит различные параметры, которые управляют поведением компилятора.
Пример базового tsconfig.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.
Пример:
"target": "es6"
2. Параметр module
Параметр module указывает систему модулей, которую должен использовать компилятор. Возможные значения включают: commonjs, amd, system, umd, es6/es2015, esnext, none.
Пример:
"module": "commonjs"
4. Параметр strict
Параметр strict включает строгий режим проверки типов. Это объединяет несколько параметров, таких как noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, strictPropertyInitialization, noImplicitThis, и alwaysStrict.
Пример:
"strict": true
5. Параметр esModuleInterop
Параметр esModuleInterop включает поддержку для совместимости с модулями ES, обеспечивая корректную работу с импортом модулей CommonJS.
Пример:
"esModuleInterop": true
6. Параметр skipLibCheck
Параметр skipLibCheck пропускает проверку типов в файлах деклараций. Это может ускорить компиляцию в больших проектах.
Пример:
"skipLibCheck": true
7. Параметр forceConsistentCasingInFileNames
Параметр forceConsistentCasingInFileNames обеспечивает консистентность регистра имен файлов в импортируемых модулях. Это помогает избежать ошибок при работе в операционных системах с чувствительностью к регистру.
Пример:
"forceConsistentCasingInFileNames": true
6.2 Параметры для организации проекта
1. Параметр outDir
Параметр outDir указывает директорию для вывода скомпилированных файлов. Это полезно для организации структуры вашего проекта и разделения исходных файлов TypeScript и скомпилированных файлов JavaScript.
Пример:
"outDir": "./dist"
2. Параметр include
Параметр include указывает директории и файлы, которые нужно включить в компиляцию. Вы можете использовать шаблоны для указания нескольких файлов и директорий.
Пример:
"include": ["src/**/*"]
3. Параметр exclude
Параметр exclude указывает директории и файлы, которые нужно исключить из компиляции. Это полезно для исключения временных файлов, директорий с результатами сборки и других ненужных файлов.
Пример:
"exclude": ["node_modules", "dist"]
6.3 Дополнительные параметры компилятора
1. Параметр rootDir
Параметр rootDir указывает корневую директорию исходных файлов TypeScript. Это помогает компилятору определить относительные пути и структуру проекта.
"rootDir": "./src"
2. Параметр sourceMap
Параметр sourceMap включает генерацию source maps, которые позволяют вам отлаживать ваш TypeScript код в браузере или другом отладчике, отображая исходный TypeScript код вместо скомпилированного JavaScript.
Пример:
"sourceMap": true
3. Параметр declaration
Параметр declaration включает генерацию файлов деклараций (.d.ts). Эти файлы содержат информацию о типах и могут быть полезны для проектов, которые используют ваш код как библиотеку. Подробнее о файлах деклараций вы узнаете в следующих лекциях.
Пример:
"declaration": true
4. Параметр removeComments
Параметр removeComments указывает компилятору удалять комментарии из скомпилированных файлов JavaScript. Это может быть полезно для уменьшения размера конечных файлов.
Пример:
"removeComments": true
5. Параметр noEmit
Параметр noEmit указывает компилятору не генерировать выходные файлы. Это может быть полезно для проверки кода на наличие ошибок без генерации скомпилированных файлов.
Пример:
"noEmit": true
6. Параметр incremental
Параметр incremental включает инкрементальную компиляцию, что позволяет ускорить процесс компиляции за счет повторного использования информации о предыдущих компиляциях.
Пример:
"incremental": true
6.4 Оптимизация компиляции
1. Параметр noImplicitAny
Параметр noImplicitAny запрещает неявное присваивание типа any переменным и параметрам. Это помогает обнаруживать потенциальные ошибки в коде.
Пример:
"noImplicitAny": true
2. Параметр strictNullChecks
Параметр strictNullChecks включает строгую проверку на null и undefined. Это помогает избежать ошибок, связанных с доступом к свойствам или вызовом методов на значениях, которые могут быть null или undefined.
Пример:
"strictNullChecks": true
3. Параметр strictFunctionTypes
Параметр strictFunctionTypes включает строгую проверку типов функций. Это помогает избежать ошибок, связанных с несовместимыми типами аргументов и возвращаемых значений функций.
Пример:
"strictFunctionTypes": true
4. Параметр noImplicitThis
Параметр noImplicitThis запрещает неявное присваивание типа any ключевому слову this. Это помогает обнаруживать ошибки, связанные с некорректным использованием this.
Пример:
"noImplicitThis": true
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ