Skip to content

Latest commit

 

History

History
75 lines (64 loc) · 8.62 KB

tsconfig.md

File metadata and controls

75 lines (64 loc) · 8.62 KB

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.