Basic¶
Начать работу с tsconfig.json в качестве стартового файла очень просто, вам нужен лишь:
{}
а именно пустой файл JSON в корне вашего проекта. Таким образом, TypeScript будет включать все файлы .ts
в этом каталоге (и подкаталогах) как часть контекста компиляции. Он также выберет несколько стандартных опций компилятора по умолчанию.
compilerOptions¶
Вы можете настроить параметры компилятора, используя compilerOptions
:
{
"compilerOptions": {
/* Основные параметры */
"target": "es5" /* Указать итоговую версию ECMAScript:
'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */,
"module": "commonjs" /* Указать тип модулей для генерируемого кода:
'commonjs', 'amd', 'system', 'umd' or 'es2015'. */,
"lib": [] /* Указать файлы библиотеки для включения их
в контекст компиляции: */,
"allowJs": true /* Разрешить компиляцию JavaScript файлов. */,
"checkJs": true /* Сообщить об ошибках в .js файлах. */,
"jsx": "preserve" /* Указать, компилировать ли JSX: 'preserve',
'react-native', or 'react'. */,
"declaration": true /* Создавать ли соответствующий файл '.d.ts'. */,
"sourceMap": true /* Создавать ли соответствующий файл '.map'. */,
"outFile": "./" /* Объединить и выдать вывод в один файл. */,
"outDir": "./" /* Перенаправить результат вывода в каталог. */,
"rootDir": "./" /* Указать корневой каталог исходников, а вывод
с помощью --outDir. */,
"removeComments": true /* Убрать комментарии из итоговых файлов. */,
"noEmit": true /* Не выводить выходные данные. */,
"importHelpers": true /* Импортировать хелперы вывода из 'tslib'. */,
"downlevelIteration": true /* Обеспечить полную поддержку итераций
в 'for-of', spread, and destructuring в 'ES5' или 'ES3' */,
"isolatedModules": true /* Транспилировать каждый файл как отдельный
модуль (аналогично «ts.transpileModule»). */,
/* Параметры для строгой проверки типов */
"strict": true /* Включить все параметры для строгой проверки типов.*/,
"noImplicitAny": true /* Выдавать ошибку в выражениях и объявлениях
с неявным типом 'any'. */,
"strictNullChecks": true /* Включить строгие проверки на null. */,
"noImplicitThis": true /* Выдавать ошибку в выражениях this
с неявным типом any. */,
"alwaysStrict": true /* Парсить в строгом режиме и использовать
директиву "use strict" для каждого исходного файла. */,
/* Дополнительные проверки */
"noUnusedLocals": true /* Выдать ошибку об неиспользованных
переменных. */,
"noUnusedParameters": true /* Выдать ошибку об неиспользованных
параметрах. */,
"noImplicitReturns": true /* Выдать ошибку когда не все "пути"
функции возвращают значение. */,
"noFallthroughCasesInSwitch": true /* Выдать ошибку об возможных
невалидных исходах в операторе switch. */,
/* Параметры анализа модуля */
"moduleResolution": "node" /* Указать вариант анализа модуля:
'node' (Node.js) или 'classic' (TypeScript pre-1.6). */,
"baseUrl": "./" /* Базовый каталог для анализа неабсолютных
имен модулей. */,
"paths": {} /* Набор записей чтобы перенастроить отображение
импортов относительно 'baseUrl'. */,
"rootDirs": [] /* Список корневых папок, объединенное содержимое
которых представляет структуру проекта во время выполнения. */,
"typeRoots": [] /* Список папок для включения определений типов. */,
"types": [] /* Расширения файлов для определения типов, которые
будут включены в компиляцию. */,
"allowSyntheticDefaultImports": true /* Разрешить импорт
по умолчанию из модулей без экспорта по умолчанию. Это не влияет
на генерацию кода, просто проверка типов. */,
/* Параметры Source Map */
"sourceRoot": "./" /* Указать местоположение, где отладчик должен
находить файлы TypeScript вместо исходных расположений источника. */,
"mapRoot": "./" /* Указать местоположение, где отладчик должен
находить map файлы вместо сгенерированных местоположений. */,
"inlineSourceMap": true /* Создать единый файл с source maps вместо
отдельных файлов. */,
"inlineSources": true /* Выпустить источник вместе с sourcemaps
в одном файле; требуется установить '--inlineSourceMap'
или '--sourceMap'. */,
/* Экспериментальные параметры*/
"experimentalDecorators": true /* Включить экспериментальную поддержку
для декораторов ES7. */,
"emitDecoratorMetadata": true /* Включить экспериментальную поддержку
выдачи типа метаданных для декораторов. */
}
}
Эти (и другие) параметры компилятора будут обсуждаться позже.
TypeScript компилятор¶
Хорошие IDE поставляются со встроенной поддержкой компиляции ts
в js
на лету. Однако, если вы хотите запустить компилятор TypeScript вручную из командной строки при использовании tsconfig.json
, вы можете сделать это несколькими способами:
- Просто запустите
tsc
, и он будет искатьtsconfig.json
в текущей и всех родительских папках, пока не найдет его. - Запустите
tsc -p ./путь-к-каталогу-проекта
. Конечно, путь может быть абсолютным или относительным к текущему каталогу.
Вы даже можете запустить компилятор TypeScript в режиме watch, используя tsc -w
, и он будет следить за изменениями в файлах проекта TypeScript.