Skip to content

Instantly share code, notes, and snippets.

@AnthonyPanchenko
Forked from KRostyslav/tsconfig.json
Created July 6, 2021 09:38
Show Gist options
  • Select an option

  • Save AnthonyPanchenko/95148b919d637c5806750411ae61d320 to your computer and use it in GitHub Desktop.

Select an option

Save AnthonyPanchenko/95148b919d637c5806750411ae61d320 to your computer and use it in GitHub Desktop.

Revisions

  1. @KRostyslav KRostyslav revised this gist Aug 11, 2020. 1 changed file with 136 additions and 130 deletions.
    266 changes: 136 additions & 130 deletions tsconfig.json
    Original file line number Diff line number Diff line change
    @@ -9,135 +9,141 @@
    // Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
    // Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".
    {
    "extends": "./configs/base" // Загрузить другой конфигурационный файл "tsconfig.json", взятый за основу, и перезаписать его значениями из секций ниже.
    , "compileOnSave": true // При значении true указывает используемой редактору кода производить компиляцию при каждом сохранении файлов TypeScript. Поддерживается не всеми редакторами кода.
    , "compilerOptions": { // Настраивает параметры компиляции. Параметры называются также, как и в командной строке.
    "extends": "./configs/base", // Загрузить другой конфигурационный файл "tsconfig.json", взятый за основу, и перезаписать его значениями из секций ниже.
    "compileOnSave": true, // При значении true указывает используемой редактору кода производить компиляцию при каждом сохранении файлов TypeScript. Поддерживается не всеми редакторами кода.
    "compilerOptions": {
    // Настраивает параметры компиляции. Параметры называются также, как и в командной строке.

    // Основные настройки.
    // Настройки путей для создания выходных файлов.
    "module": "amd" // Определяет тип импорта кода в итоговом файле, прописанном в "outFile". Необходимо задавать при использовании опции "outFile".
    , "outFile": "./build/bundle.js" // Имя единого итогового выходного файла, в который будут помещен код из всех найденных TypeScript-файлов.
    , "outDir": "./build" // Поместить все скомпилированные файлы в данную папку, согласно их вложенности в исходниках. Если задана опция "outFile", то опция "outDir" будет проигнорирована.
    // Если "outFile" и "outDir" не заданы, то выходные файлы будут созданы рядом со своими исходниками.
    // Настройки для поиска @types
    , "typeRoots" : [ // По умолчанию все видимые в проекте пакеты "@types", расположенные в папках "node_modules" на всех уровнях вложенности, используются при компиляции.
    // Но, если указан массив "typeRoots", тогда при компиляции будут использованы только описания типов, найденные в папках, расположенных по перечисленным в нем путях.
    // При этом описания типов, находящихся в других папках использованы не будут.
    // Папки с пакетами описаний типов обычно содержат внутри себя файл "index.d.ts" или "package.json" со свойством "types".
    "./typings" // При компиляции будут использованы только файлы описания типов ".d.ts" находящиеся в этой папке.
    ]
    , "types" : ["node", "lodash", "express"] // Если указан параметр "types", то из всех найденных будут использованы только те описания типов, что указаны в его массиве, а именно: "./typings/node", "./typings/lodash", "./typings/express".
    // Другие найденные типы использоваться не будут.
    // Задание "types": [] приведет к отключению автоматического использования описаний типов из папок "@types".
    , "rootDir": "../src" // Путь до папки с которой надо начинать поиск входных файлов. Обычно корневая директория вычисляется по списку входных файлов. Данная опция необходима для проверки, что все найденные TypeScript-файлы находятся внутри корневой папки.
    , "rootDirs": [ // Список корневых папок, совокупный контент которых представляет структуру проекта для компиляции.
    "src/views"
    , "generated/templates/views"
    ]
    , "baseUrl": "." // Путь до базовой папки для поиска не относительных путей до файлов.
    , "paths": { // Укажите сопоставление маршрутов для вычисления по сравнению с параметром baseUrl.
    "jquery": ["node_modules/jquery/dist/jquery"] // Путь относительно "baseUrl".
    }
    , "lib": ["es5", "es6", "es2015.promise", "es2016.array.include"] // Набор библиотечных файлов полифилов, которые будут включены в итоговый выходной файл.
    , "target": "es3" // Тип кода создаваемого итогового файла.
    , "jsx": "react" // Включать ли поддержку ".tsx" файлов?
    , "jsxFactory": "React.createElement" // Укажите фабричную функцию JSX, чтобы использовать, когда таргетинг реагирует на обработку JSX, например: 'React.createElement' или 'h'. Требуется TypeScript версии 2.1 или новее.
    , "allowJs": false // Разрешать компилировать файлы с JavaScript-кодом?
    , "alwaysStrict": // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее.
    , "checkJs": false // Сообщить об ошибках в .js-файлах? Используйте совместно с "allowJs".
    , "downlevelIteration": false // Обеспечьте полную поддержку итераций для for - in, ..., деструктуризации при настройке на ES5 или ES3?
    , "noEmitOnError": true // Не создавать итоговый файл, если во время компиляции произошла ошибка.
    , "noEmitHelpers": false // Не помещать в код итогового файла функции хелперы.
    , "importHelpers": false // Имортировать созданные хелперы (__extends, __rest и так далее) из "tslib".
    , "noUnusedLocals": true // Показывать ошибку, если где-то найдены неиспользуемые локальные значения.
    , "noUnusedParameters": true // Показывать ошибку, если где-то найдены неиспользуемые параметры.
    , "strictNullChecks": false // Значения "null" и "undefined" могут быть присвоены только значениям данного типа и значениям только с типом "any"?
    , "noImplicitUseStrict": false // Не записывать 'use strict' в итоговый выходной файл?
    , "strict": false // Включить ли все строги проверки типов сразу: noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes, strictPropertyInitialization?
    , "removeComments": true // Удалить все комментарии из итогового файла.
    , "sourceMap": true // Создавать ли соответствующие source map файлы ".map"?
    , "pretty": true // Окрашивать в терминале сообщения об ошибках.
    , "watch": true // Запустить компилятор в режиме отслеживания изменений во входных файлах и их повторной компиляции?
    , "build": false // TODO
    , "composite": true // TODO

    // Дополнительные настройки.
    , "charset": "utf8" // Кодировка входных файлов.
    , "declaration": false // Создавать ли соответствующие файлы ".d.ts"?
    , "declarationDir": "." // Путь до папки, в которую будут записаны созданные соответствующие файлы ".d.ts".
    , "declarationMap": false // TODO
    , "diagnostics": false // Показывать ли диагностическую информацию?
    , "disableSizeLimit": false // Отключить ограничение размера в проекте JavaScript.
    , "emitBOM": false // Записывать ли UTF-8 Byte Order Mark (BOM) в начало итогового файла?
    , "emitDeclarationOnly": false // TODO
    , "emitDecoratorMetadata": false // Создавать метаданные для объявлений декораторов в исходном коде?
    , "esModuleInterop": false // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов.
    , "experimentalDecorators": false // Включить экспериментальную поддержку декораторов EcmaScript?
    , "extendedDiagnostics": false // TODO
    , "inlineSourceMap": false // Помещать ли source map в итоговый файл, вместо того чтобы иметь отдельный файл с source map?
    , "inlineSources": false // Помещать ли source в итоговый файл рядом с source map?
    , "listFiles": false // Печатать ли имена файлов при компиляции?
    , "mapRoot": "." // Путь до папки, в которой дебаггер браузера должен будет искать файлы с source map.
    , "newLine": "CRLF" // Определяет тип завершения строк в итоговом файле.
    , "noEmit": false // Не создавать итоговый файл.
    , "noImplicitAny": false // Показывать ошибку, если где-то задан тип "any".
    , "noImplicitThis": false // Показывать ошибку на "this", если где-то задан тип "any".
    , "noLib": false // Не использовать стандартный библиотечный файл по умолчанию (lib.d.ts).
    , "noResolve": false // Не добавлять "/// <reference path="..." />" в список скомпилированных файлов.
    , "noStrictGenericChecks": false // Отключить строгую проверку типов джинериков в типах функций?
    , "skipDefaultLibCheck": false // Пропустить проверку типов из стандартной библиотеки по умолчанию?
    , "skipLibCheck": false // Не проверять типы, заданные во всех файлах описания типов (*.d.ts)?
    , "preserveConstEnums": false // Не удалять объявления const enum из итогового файла.
    , "preserveSymlinks": false // Не заменять символические ссылки на их реальный путь, обрабатывать символический файл как реальный.
    , "isolatedModules": false // Обрабатывать каждый файл, как отдельный изолированный модуль.
    , "sourceRoot": "." // Путь до папки, в которой дебаггер должен искать исходные source файлы.
    , "suppressExcessPropertyErrors": false // Подавлять избыточные проверки свойств для объектных литералов?
    , "suppressImplicitAnyIndexErrors": false // Подавлять "noImplicitAny" ошибки для индексирования объектов, не имеющих индексных подписей.
    , "stripInternal": false // Не создавать объявления для кода, который имеет аннотацию JSDoc /** @internal */.
    , "moduleResolution": "classic" // Определить способ поиска модулей в папках: как в Node.js или классический, как в TypeScript 1.5 и ниже.
    , "allowUnusedLabels": false // Не создавать сообщений об ошибках, если в коде найдены неиспользуемые метки label?
    , "allowUnreachableCode": false // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен?
    , "allowSyntheticDefaultImports": false // Разрешить импортировать модули не имеющие внутри себя "import default"?
    , "allowUmdGlobalAccess": false // TODO
    , "assumeChangesOnlyAffectDirectDependencies": false // TODO
    , "noImplicitReturns": false // Сообщить об ошибке, когда не все пути кода в функции возвращают значение?
    , "noFallthroughCasesInSwitch": false // Сообщить об ошибке в случае обнаружения проваливания в конструкции switch-case?
    , "forceConsistentCasingInFileNames": false // Запретить несогласованные ссылки на один и тот же файл?
    , "plugins": [] // Список плагинов для сервера языка TypeScript для загрузки. Требуется TypeScript версии 2.3 или новее.
    , "traceResolution": false // Выводить в логи сообщения о нахождении путей до модулей.
    , "listEmittedFiles": false // Печатать список всех выходных файлов при компиляции. Требуется TypeScript версии 2.0 или новее.
    , "maxNodeModuleJsDepth": 0 // Максимальная глубина поиска зависимостей внутри node_modules и загрузки файлов JavaScript. Применяется только вместе с заданной опцией "allowJs".
    , "strictFunctionTypes": false // Отключить проверку бивариантных параметров для типов функций.
    , "strictPropertyInitialization": false // Убедитесь, что свойства класса, имеющие значения undefined, получают новые значения внутри конструктора.
    // Основные настройки.
    // Настройки путей для создания выходных файлов.
    "module": "amd", // Определяет тип импорта кода в итоговом файле, прописанном в "outFile". Необходимо задавать при использовании опции "outFile".
    "outFile": "./build/bundle.js", // Имя единого итогового выходного файла, в который будут помещен код из всех найденных TypeScript-файлов.
    "outDir": "./build", // Поместить все скомпилированные файлы в данную папку, согласно их вложенности в исходниках. Если задана опция "outFile", то опция "outDir" будет проигнорирована.
    // Если "outFile" и "outDir" не заданы, то выходные файлы будут созданы рядом со своими исходниками.
    // Настройки для поиска @types
    "typeRoots": [
    // По умолчанию все видимые в проекте пакеты "@types", расположенные в папках "node_modules" на всех уровнях вложенности, используются при компиляции.
    // Но, если указан массив "typeRoots", тогда при компиляции будут использованы только описания типов, найденные в папках, расположенных по перечисленным в нем путях.
    // При этом описания типов, находящихся в других папках использованы не будут.
    // Папки с пакетами описаний типов обычно содержат внутри себя файл "index.d.ts" или "package.json" со свойством "types".
    "./typings" // При компиляции будут использованы только файлы описания типов ".d.ts" находящиеся в этой папке.
    ],
    "types": ["node", "lodash", "express"], // Если указан параметр "types", то из всех найденных будут использованы только те описания типов, что указаны в его массиве, а именно: "./typings/node", "./typings/lodash", "./typings/express".
    // Другие найденные типы использоваться не будут.
    // Задание "types": [] приведет к отключению автоматического использования описаний типов из папок "@types".
    "rootDir": "../src", // Путь до папки с которой надо начинать поиск входных файлов. Обычно корневая директория вычисляется по списку входных файлов. Данная опция необходима для проверки, что все найденные TypeScript-файлы находятся внутри корневой папки.
    "rootDirs": [
    // Список корневых папок, совокупный контент которых представляет структуру проекта для компиляции.
    "src/views",
    "generated/templates/views"
    ],
    "baseUrl": ".", // Путь до базовой папки для поиска не относительных путей до файлов.
    "build": false, // TODO
    "composite": true, // TODO
    "paths": {
    // Укажите сопоставление маршрутов для вычисления по сравнению с параметром baseUrl.
    "jquery": ["node_modules/jquery/dist/jquery"] // Путь относительно "baseUrl".
    },
    "lib": ["es5", "es6", "es2015.promise", "es2016.array.include"], // Набор библиотечных файлов полифилов, которые будут включены в итоговый выходной файл.
    "jsx": "react", // Включать ли поддержку ".tsx" файлов?
    "jsxFactory": "React.createElement", // Укажите фабричную функцию JSX, чтобы использовать, когда таргетинг реагирует на обработку JSX, например: 'React.createElement' или 'h'. Требуется TypeScript версии 2.1 или новее.
    "allowJs": false, // Разрешать компилировать файлы с JavaScript-кодом?
    "alwaysStrict": false, // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее.
    "checkJs": false, // Сообщить об ошибках в .js-файлах? Используйте совместно с "allowJs".
    "downlevelIteration": false, // Обеспечьте полную поддержку итераций для for - in, ..., деструктуризации при настройке на ES5 или ES3?
    "importHelpers": false, // Имортировать созданные хелперы (__extends, __rest и так далее) из "tslib".
    "noEmitOnError": true, // Не создавать итоговый файл, если во время компиляции произошла ошибка.
    "noEmitHelpers": false, // Не помещать в код итогового файла функции хелперы.
    "noUnusedLocals": true, // Показывать ошибку, если где-то найдены неиспользуемые локальные значения.
    "noUnusedParameters": true, // Показывать ошибку, если где-то найдены неиспользуемые параметры.
    "noImplicitUseStrict": false, // Не записывать 'use strict' в итоговый выходной файл?
    "pretty": true, // Окрашивать в терминале сообщения об ошибках.
    "removeComments": true, // Удалить все комментарии из итогового файла.
    "sourceMap": true, // Создавать ли соответствующие source map файлы ".map"?
    "strict": false, // Включить ли все строги проверки типов сразу: noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes, strictPropertyInitialization?
    "strictNullChecks": false, // Значения "null" и "undefined" могут быть присвоены только значениям данного типа и значениям только с типом "any"?
    "target": "es3", // Тип кода создаваемого итогового файла.
    "watch": true, // Запустить компилятор в режиме отслеживания изменений во входных файлах и их повторной компиляции?

    }
    , "files": [ // Список относительных или абсолютных путей до конкретных исходных файлов, которые обязательно надо скомпилировать.
    // Если секция "files" не указана, то компилятор по умолчанию включает все файлы с расширением *.ts и *.tsx, которые находятся в корневой папке и внутренних подпапках проекта.
    // Если секция "files" указана, то скомпилируются файлы, которые в ней перечислены.
    // Все файлы, на которые есть ссылки в файлах из секции "files", также скомпилируются.
    "core.ts"
    , "app.ts"
    ]
    // Вместе с компиляцией только конкретных исходных файлов можно компилировать только файлы в заданных папках, которые будут найдены через регулярные выражения, которые принимают только следующие значения:
    // - букву или цифру;
    // - * - ноль или более любых символов, не включая разделители директорий "/" и "\";
    // - ? - один любой символ, не включая разделители директорий "/" и "\";
    // - **/ - рекурсивно включить любую подпапку.
    // Если путь до папки заканчивается так "*" или так ".*", тогда в ней будут скомплированы все файлы с расширениями .ts, .tsx, .d.ts, а также .js и .jsx, если опция "allowJs" будет равна true.
    , "include": [ // Секция "include" позволяет скомпилировать все файлы, находящиеся в заданных папках.
    // Если секция "files" и секция "include" заданы вместе, то будут скомпилированы только файлы, перечисленные в обеих секциях.
    // Все файлы, на которые есть ссылки во включенных файлах из секции "files" и секции "include", также скомпилируются.
    "src/**/*"
    ]
    , "exclude": [ // Секция "exclude" позволяет исключить при компиляции определенные файлы, которые находятся в заданных папках секции "include" или в папках всего проекта, если секция "include" не задана.
    // Компилятор не будет учитывать перечисленные в секции "exclude" файлы TypeScript, которые находятся в папках из секции "include".
    // Однако файлы, заданные в секции "files" будут обязательно скомпилированы.
    // Если секция "exclude" не указана, то по умолчанию будут исключаться из компиляции все файлы из папок:
    // - node_modules,
    // - bower_components,
    // - jspm_packages,
    // - файлы из папки, указанной в опции компилятора "outDir".
    "src/**/*.spec.ts"
    , "node_modules"
    ]
    }
    // Дополнительные настройки.
    "allowSyntheticDefaultImports": false, // Разрешить импортировать модули не имеющие внутри себя "import default"?
    "allowUnreachableCode": false, // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен?
    "allowUnusedLabels": false, // Не создавать сообщений об ошибках, если в коде найдены неиспользуемые метки label?
    "allowUmdGlobalAccess": false, // TODO
    "assumeChangesOnlyAffectDirectDependencies": false, // TODO
    "charset": "utf8", // Кодировка входных файлов.
    "declaration": false, // Создавать ли соответствующие файлы ".d.ts"?
    "declarationDir": ".", // Путь до папки, в которую будут записаны созданные соответствующие файлы ".d.ts".
    "declarationMap": false, // TODO
    "diagnostics": false, // Показывать ли диагностическую информацию?
    "disableSizeLimit": false, // Отключить ограничение размера в проекте JavaScript.
    "emitBOM": false, // Записывать ли UTF-8 Byte Order Mark (BOM) в начало итогового файла?
    "emitDeclarationOnly": false, // TODO
    "emitDecoratorMetadata": false, // Создавать метаданные для объявлений декораторов в исходном коде?
    "esModuleInterop": false, // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов.
    "experimentalDecorators": false, // Включить экспериментальную поддержку декораторов EcmaScript?
    "extendedDiagnostics": false, // TODO
    "forceConsistentCasingInFileNames": false, // Запретить несогласованные ссылки на один и тот же файл?
    "inlineSources": false, // Помещать ли source в итоговый файл рядом с source map?
    "inlineSourceMap": false, // Помещать ли source map в итоговый файл, вместо того чтобы иметь отдельный файл с source map?
    "isolatedModules": false, // Обрабатывать каждый файл, как отдельный изолированный модуль.
    "listFiles": false, // Печатать ли имена файлов при компиляции?
    "listEmittedFiles": false, // Печатать список всех выходных файлов при компиляции. Требуется TypeScript версии 2.0 или новее.
    "mapRoot": ".", // Путь до папки, в которой дебаггер браузера должен будет искать файлы с source map.
    "maxNodeModuleJsDepth": 0, // Максимальная глубина поиска зависимостей внутри node_modules и загрузки файлов JavaScript. Применяется только вместе с заданной опцией "allowJs".
    "moduleResolution": "classic", // Определить способ поиска модулей в папках: как в Node.js или классический, как в TypeScript 1.5 и ниже.
    "newLine": "CRLF", // Определяет тип завершения строк в итоговом файле.
    "noEmit": false, // Не создавать итоговый файл.
    "noFallthroughCasesInSwitch": false, // Сообщить об ошибке в случае обнаружения проваливания в конструкции switch-case?
    "noImplicitAny": false, // Показывать ошибку, если где-то задан тип "any".
    "noImplicitThis": false, // Показывать ошибку на "this", если где-то задан тип "any".
    "noImplicitReturns": false, // Сообщить об ошибке, когда не все пути кода в функции возвращают значение?
    "noLib": false, // Не использовать стандартный библиотечный файл по умолчанию (lib.d.ts).
    "noResolve": false, // Не добавлять "/// <reference path="..." />" в список скомпилированных файлов.
    "noStrictGenericChecks": false, // Отключить строгую проверку типов джинериков в типах функций?
    "plugins": [], // Список плагинов для сервера языка TypeScript для загрузки. Требуется TypeScript версии 2.3 или новее.
    "preserveConstEnums": false, // Не удалять объявления const enum из итогового файла.
    "preserveSymlinks": false, // Не заменять символические ссылки на их реальный путь, обрабатывать символический файл как реальный.
    "sourceRoot": ".", // Путь до папки, в которой дебаггер должен искать исходные source файлы.
    "skipLibCheck": false, // Не проверять типы, заданные во всех файлах описания типов (*.d.ts)?
    "skipDefaultLibCheck": false, // Пропустить проверку типов из стандартной библиотеки по умолчанию?
    "suppressExcessPropertyErrors": false, // Подавлять избыточные проверки свойств для объектных литералов?
    "suppressImplicitAnyIndexErrors": false, // Подавлять "noImplicitAny" ошибки для индексирования объектов, не имеющих индексных подписей.
    "stripInternal": false, // Не создавать объявления для кода, который имеет аннотацию JSDoc /** @internal */.
    "strictFunctionTypes": false, // Отключить проверку бивариантных параметров для типов функций.
    "strictPropertyInitialization": false, // Убедитесь, что свойства класса, имеющие значения undefined, получают новые значения внутри конструктора.
    "traceResolution": false // Выводить в логи сообщения о нахождении путей до модулей.
    },
    "files": [
    // Список относительных или абсолютных путей до конкретных исходных файлов, которые обязательно надо скомпилировать.
    // Если секция "files" не указана, то компилятор по умолчанию включает все файлы с расширением *.ts и *.tsx, которые находятся в корневой папке и внутренних подпапках проекта.
    // Если секция "files" указана, то скомпилируются файлы, которые в ней перечислены.
    // Все файлы, на которые есть ссылки в файлах из секции "files", также скомпилируются.
    "core.ts",
    "app.ts"
    ],
    // Вместе с компиляцией только конкретных исходных файлов можно компилировать только файлы в заданных папках, которые будут найдены через регулярные выражения, которые принимают только следующие значения:
    // - букву или цифру;
    // - * - ноль или более любых символов, не включая разделители директорий "/" и "\";
    // - ? - один любой символ, не включая разделители директорий "/" и "\";
    // - **/ - рекурсивно включить любую подпапку.
    // Если путь до папки заканчивается так "*" или так ".*", тогда в ней будут скомплированы все файлы с расширениями .ts, .tsx, .d.ts, а также .js и .jsx, если опция "allowJs" будет равна true.
    "include": [
    // Секция "include" позволяет скомпилировать все файлы, находящиеся в заданных папках.
    // Если секция "files" и секция "include" заданы вместе, то будут скомпилированы только файлы, перечисленные в обеих секциях.
    // Все файлы, на которые есть ссылки во включенных файлах из секции "files" и секции "include", также скомпилируются.
    "src/**/*"
    ],
    "exclude": [
    // Секция "exclude" позволяет исключить при компиляции определенные файлы, которые находятся в заданных папках секции "include" или в папках всего проекта, если секция "include" не задана.
    // Компилятор не будет учитывать перечисленные в секции "exclude" файлы TypeScript, которые находятся в папках из секции "include".
    // Однако файлы, заданные в секции "files" будут обязательно скомпилированы.
    // Если секция "exclude" не указана, то по умолчанию будут исключаться из компиляции все файлы из папок:
    // - node_modules,
    // - bower_components,
    // - jspm_packages,
    // - файлы из папки, указанной в опции компилятора "outDir".
    "src/**/*.spec.ts",
    "node_modules"
    ]
    }
  2. @KRostyslav KRostyslav revised this gist Aug 11, 2020. 1 changed file with 15 additions and 8 deletions.
    23 changes: 15 additions & 8 deletions tsconfig.json
    Original file line number Diff line number Diff line change
    @@ -43,6 +43,7 @@
    , "jsx": "react" // Включать ли поддержку ".tsx" файлов?
    , "jsxFactory": "React.createElement" // Укажите фабричную функцию JSX, чтобы использовать, когда таргетинг реагирует на обработку JSX, например: 'React.createElement' или 'h'. Требуется TypeScript версии 2.1 или новее.
    , "allowJs": false // Разрешать компилировать файлы с JavaScript-кодом?
    , "alwaysStrict": // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее.
    , "checkJs": false // Сообщить об ошибках в .js-файлах? Используйте совместно с "allowJs".
    , "downlevelIteration": false // Обеспечьте полную поддержку итераций для for - in, ..., деструктуризации при настройке на ES5 или ES3?
    , "noEmitOnError": true // Не создавать итоговый файл, если во время компиляции произошла ошибка.
    @@ -52,19 +53,27 @@
    , "noUnusedParameters": true // Показывать ошибку, если где-то найдены неиспользуемые параметры.
    , "strictNullChecks": false // Значения "null" и "undefined" могут быть присвоены только значениям данного типа и значениям только с типом "any"?
    , "noImplicitUseStrict": false // Не записывать 'use strict' в итоговый выходной файл?
    , "alwaysStrict": // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее.
    , "strict": false // Включить ли все строги проверки типов сразу: noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes, strictPropertyInitialization?
    , "removeComments": true // Удалить все комментарии из итогового файла.
    , "sourceMap": true // Создавать ли соответствующие source map файлы ".map"?
    , "pretty": true // Окрашивать в терминале сообщения об ошибках.
    , "watch": true // Запустить компилятор в режиме отслеживания изменений во входных файлах и их повторной компиляции?

    , "build": false // TODO
    , "composite": true // TODO

    // Дополнительные настройки.
    , "charset": "utf8" // Кодировка входных файлов.
    , "declaration": false // Создавать ли соответствующие файлы ".d.ts"?
    , "declarationDir": "." // Путь до папки, в которую будут записаны созданные соответствующие файлы ".d.ts".
    , "declarationMap": false // TODO
    , "diagnostics": false // Показывать ли диагностическую информацию?
    , "disableSizeLimit": false // Отключить ограничение размера в проекте JavaScript.
    , "emitBOM": false // Записывать ли UTF-8 Byte Order Mark (BOM) в начало итогового файла?
    , "emitDeclarationOnly": false // TODO
    , "emitDecoratorMetadata": false // Создавать метаданные для объявлений декораторов в исходном коде?
    , "esModuleInterop": false // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов.
    , "experimentalDecorators": false // Включить экспериментальную поддержку декораторов EcmaScript?
    , "extendedDiagnostics": false // TODO
    , "inlineSourceMap": false // Помещать ли source map в итоговый файл, вместо того чтобы иметь отдельный файл с source map?
    , "inlineSources": false // Помещать ли source в итоговый файл рядом с source map?
    , "listFiles": false // Печатать ли имена файлов при компиляции?
    @@ -85,23 +94,21 @@
    , "suppressExcessPropertyErrors": false // Подавлять избыточные проверки свойств для объектных литералов?
    , "suppressImplicitAnyIndexErrors": false // Подавлять "noImplicitAny" ошибки для индексирования объектов, не имеющих индексных подписей.
    , "stripInternal": false // Не создавать объявления для кода, который имеет аннотацию JSDoc /** @internal */.
    , "experimentalDecorators": false // Включить экспериментальную поддержку декораторов EcmaScript?
    , "emitDecoratorMetadata": false // Создавать метаданные для объявлений декораторов в исходном коде?
    , "moduleResolution": "classic" // Определить способ поиска модулей в папках: как в Node.js или классический, как в TypeScript 1.5 и ниже.
    , "allowUnusedLabels": false // Не создавать сообщений об ошибках, если в коде найдены неиспользуемые метки label?
    , "allowUnreachableCode": false // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен?
    , "allowSyntheticDefaultImports": false // Разрешить импортировать модули не имеющие внутри себя "import default"?
    , "allowUmdGlobalAccess": false // TODO
    , "assumeChangesOnlyAffectDirectDependencies": false // TODO
    , "noImplicitReturns": false // Сообщить об ошибке, когда не все пути кода в функции возвращают значение?
    , "noFallthroughCasesInSwitch": false // Сообщить об ошибке в случае обнаружения проваливания в конструкции switch-case?
    , "allowUnreachableCode": false // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен?
    , "forceConsistentCasingInFileNames": false // Запретить несогласованные ссылки на один и тот же файл?
    , "plugins": [] // Список плагинов для сервера языка TypeScript для загрузки. Требуется TypeScript версии 2.3 или новее.
    , "traceResolution": false // Выводить в логи сообщения о нахождении путей до модулей.
    , "allowSyntheticDefaultImports": false // Разрешить импортировать модули не имеющие внутри себя "import default"?
    , "listEmittedFiles": false // Печатать список всех выходных файлов при компиляции. Требуется TypeScript версии 2.0 или новее.
    , "disableSizeLimit": false // Отключить ограничение размера в проекте JavaScript.
    , "maxNodeModuleJsDepth": 0 // Максимальная глубина поиска зависимостей внутри node_modules и загрузки файлов JavaScript. Применяется только вместе с заданной опцией "allowJs".
    , "strictFunctionTypes": false // Отключить проверку бивариантных параметров для типов функций.
    , "strictPropertyInitialization": false // Убедитесь, что свойства класса, имеющие значения undefined, получают новые значения внутри конструктора.
    , "esModuleInterop": false // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов.

    }
    , "files": [ // Список относительных или абсолютных путей до конкретных исходных файлов, которые обязательно надо скомпилировать.
  3. @KRostyslav KRostyslav created this gist Jun 5, 2018.
    136 changes: 136 additions & 0 deletions tsconfig.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,136 @@
    // Файл "tsconfig.json":
    // - устанавливает корневой каталог проекта TypeScript;
    // - выполняет настройку параметров компиляции;
    // - устанавливает файлы проекта.
    // Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта.
    // Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта.
    // Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга.
    // Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути.
    // Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
    // Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".
    {
    "extends": "./configs/base" // Загрузить другой конфигурационный файл "tsconfig.json", взятый за основу, и перезаписать его значениями из секций ниже.
    , "compileOnSave": true // При значении true указывает используемой редактору кода производить компиляцию при каждом сохранении файлов TypeScript. Поддерживается не всеми редакторами кода.
    , "compilerOptions": { // Настраивает параметры компиляции. Параметры называются также, как и в командной строке.

    // Основные настройки.
    // Настройки путей для создания выходных файлов.
    "module": "amd" // Определяет тип импорта кода в итоговом файле, прописанном в "outFile". Необходимо задавать при использовании опции "outFile".
    , "outFile": "./build/bundle.js" // Имя единого итогового выходного файла, в который будут помещен код из всех найденных TypeScript-файлов.
    , "outDir": "./build" // Поместить все скомпилированные файлы в данную папку, согласно их вложенности в исходниках. Если задана опция "outFile", то опция "outDir" будет проигнорирована.
    // Если "outFile" и "outDir" не заданы, то выходные файлы будут созданы рядом со своими исходниками.
    // Настройки для поиска @types
    , "typeRoots" : [ // По умолчанию все видимые в проекте пакеты "@types", расположенные в папках "node_modules" на всех уровнях вложенности, используются при компиляции.
    // Но, если указан массив "typeRoots", тогда при компиляции будут использованы только описания типов, найденные в папках, расположенных по перечисленным в нем путях.
    // При этом описания типов, находящихся в других папках использованы не будут.
    // Папки с пакетами описаний типов обычно содержат внутри себя файл "index.d.ts" или "package.json" со свойством "types".
    "./typings" // При компиляции будут использованы только файлы описания типов ".d.ts" находящиеся в этой папке.
    ]
    , "types" : ["node", "lodash", "express"] // Если указан параметр "types", то из всех найденных будут использованы только те описания типов, что указаны в его массиве, а именно: "./typings/node", "./typings/lodash", "./typings/express".
    // Другие найденные типы использоваться не будут.
    // Задание "types": [] приведет к отключению автоматического использования описаний типов из папок "@types".
    , "rootDir": "../src" // Путь до папки с которой надо начинать поиск входных файлов. Обычно корневая директория вычисляется по списку входных файлов. Данная опция необходима для проверки, что все найденные TypeScript-файлы находятся внутри корневой папки.
    , "rootDirs": [ // Список корневых папок, совокупный контент которых представляет структуру проекта для компиляции.
    "src/views"
    , "generated/templates/views"
    ]
    , "baseUrl": "." // Путь до базовой папки для поиска не относительных путей до файлов.
    , "paths": { // Укажите сопоставление маршрутов для вычисления по сравнению с параметром baseUrl.
    "jquery": ["node_modules/jquery/dist/jquery"] // Путь относительно "baseUrl".
    }
    , "lib": ["es5", "es6", "es2015.promise", "es2016.array.include"] // Набор библиотечных файлов полифилов, которые будут включены в итоговый выходной файл.
    , "target": "es3" // Тип кода создаваемого итогового файла.
    , "jsx": "react" // Включать ли поддержку ".tsx" файлов?
    , "jsxFactory": "React.createElement" // Укажите фабричную функцию JSX, чтобы использовать, когда таргетинг реагирует на обработку JSX, например: 'React.createElement' или 'h'. Требуется TypeScript версии 2.1 или новее.
    , "allowJs": false // Разрешать компилировать файлы с JavaScript-кодом?
    , "checkJs": false // Сообщить об ошибках в .js-файлах? Используйте совместно с "allowJs".
    , "downlevelIteration": false // Обеспечьте полную поддержку итераций для for - in, ..., деструктуризации при настройке на ES5 или ES3?
    , "noEmitOnError": true // Не создавать итоговый файл, если во время компиляции произошла ошибка.
    , "noEmitHelpers": false // Не помещать в код итогового файла функции хелперы.
    , "importHelpers": false // Имортировать созданные хелперы (__extends, __rest и так далее) из "tslib".
    , "noUnusedLocals": true // Показывать ошибку, если где-то найдены неиспользуемые локальные значения.
    , "noUnusedParameters": true // Показывать ошибку, если где-то найдены неиспользуемые параметры.
    , "strictNullChecks": false // Значения "null" и "undefined" могут быть присвоены только значениям данного типа и значениям только с типом "any"?
    , "noImplicitUseStrict": false // Не записывать 'use strict' в итоговый выходной файл?
    , "alwaysStrict": // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее.
    , "strict": false // Включить ли все строги проверки типов сразу: noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes, strictPropertyInitialization?
    , "removeComments": true // Удалить все комментарии из итогового файла.
    , "sourceMap": true // Создавать ли соответствующие source map файлы ".map"?
    , "pretty": true // Окрашивать в терминале сообщения об ошибках.
    , "watch": true // Запустить компилятор в режиме отслеживания изменений во входных файлах и их повторной компиляции?

    // Дополнительные настройки.
    , "charset": "utf8" // Кодировка входных файлов.
    , "declaration": false // Создавать ли соответствующие файлы ".d.ts"?
    , "declarationDir": "." // Путь до папки, в которую будут записаны созданные соответствующие файлы ".d.ts".
    , "diagnostics": false // Показывать ли диагностическую информацию?
    , "emitBOM": false // Записывать ли UTF-8 Byte Order Mark (BOM) в начало итогового файла?
    , "inlineSourceMap": false // Помещать ли source map в итоговый файл, вместо того чтобы иметь отдельный файл с source map?
    , "inlineSources": false // Помещать ли source в итоговый файл рядом с source map?
    , "listFiles": false // Печатать ли имена файлов при компиляции?
    , "mapRoot": "." // Путь до папки, в которой дебаггер браузера должен будет искать файлы с source map.
    , "newLine": "CRLF" // Определяет тип завершения строк в итоговом файле.
    , "noEmit": false // Не создавать итоговый файл.
    , "noImplicitAny": false // Показывать ошибку, если где-то задан тип "any".
    , "noImplicitThis": false // Показывать ошибку на "this", если где-то задан тип "any".
    , "noLib": false // Не использовать стандартный библиотечный файл по умолчанию (lib.d.ts).
    , "noResolve": false // Не добавлять "/// <reference path="..." />" в список скомпилированных файлов.
    , "noStrictGenericChecks": false // Отключить строгую проверку типов джинериков в типах функций?
    , "skipDefaultLibCheck": false // Пропустить проверку типов из стандартной библиотеки по умолчанию?
    , "skipLibCheck": false // Не проверять типы, заданные во всех файлах описания типов (*.d.ts)?
    , "preserveConstEnums": false // Не удалять объявления const enum из итогового файла.
    , "preserveSymlinks": false // Не заменять символические ссылки на их реальный путь, обрабатывать символический файл как реальный.
    , "isolatedModules": false // Обрабатывать каждый файл, как отдельный изолированный модуль.
    , "sourceRoot": "." // Путь до папки, в которой дебаггер должен искать исходные source файлы.
    , "suppressExcessPropertyErrors": false // Подавлять избыточные проверки свойств для объектных литералов?
    , "suppressImplicitAnyIndexErrors": false // Подавлять "noImplicitAny" ошибки для индексирования объектов, не имеющих индексных подписей.
    , "stripInternal": false // Не создавать объявления для кода, который имеет аннотацию JSDoc /** @internal */.
    , "experimentalDecorators": false // Включить экспериментальную поддержку декораторов EcmaScript?
    , "emitDecoratorMetadata": false // Создавать метаданные для объявлений декораторов в исходном коде?
    , "moduleResolution": "classic" // Определить способ поиска модулей в папках: как в Node.js или классический, как в TypeScript 1.5 и ниже.
    , "allowUnusedLabels": false // Не создавать сообщений об ошибках, если в коде найдены неиспользуемые метки label?
    , "noImplicitReturns": false // Сообщить об ошибке, когда не все пути кода в функции возвращают значение?
    , "noFallthroughCasesInSwitch": false // Сообщить об ошибке в случае обнаружения проваливания в конструкции switch-case?
    , "allowUnreachableCode": false // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен?
    , "forceConsistentCasingInFileNames": false // Запретить несогласованные ссылки на один и тот же файл?
    , "plugins": [] // Список плагинов для сервера языка TypeScript для загрузки. Требуется TypeScript версии 2.3 или новее.
    , "traceResolution": false // Выводить в логи сообщения о нахождении путей до модулей.
    , "allowSyntheticDefaultImports": false // Разрешить импортировать модули не имеющие внутри себя "import default"?
    , "listEmittedFiles": false // Печатать список всех выходных файлов при компиляции. Требуется TypeScript версии 2.0 или новее.
    , "disableSizeLimit": false // Отключить ограничение размера в проекте JavaScript.
    , "maxNodeModuleJsDepth": 0 // Максимальная глубина поиска зависимостей внутри node_modules и загрузки файлов JavaScript. Применяется только вместе с заданной опцией "allowJs".
    , "strictFunctionTypes": false // Отключить проверку бивариантных параметров для типов функций.
    , "strictPropertyInitialization": false // Убедитесь, что свойства класса, имеющие значения undefined, получают новые значения внутри конструктора.
    , "esModuleInterop": false // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов.

    }
    , "files": [ // Список относительных или абсолютных путей до конкретных исходных файлов, которые обязательно надо скомпилировать.
    // Если секция "files" не указана, то компилятор по умолчанию включает все файлы с расширением *.ts и *.tsx, которые находятся в корневой папке и внутренних подпапках проекта.
    // Если секция "files" указана, то скомпилируются файлы, которые в ней перечислены.
    // Все файлы, на которые есть ссылки в файлах из секции "files", также скомпилируются.
    "core.ts"
    , "app.ts"
    ]
    // Вместе с компиляцией только конкретных исходных файлов можно компилировать только файлы в заданных папках, которые будут найдены через регулярные выражения, которые принимают только следующие значения:
    // - букву или цифру;
    // - * - ноль или более любых символов, не включая разделители директорий "/" и "\";
    // - ? - один любой символ, не включая разделители директорий "/" и "\";
    // - **/ - рекурсивно включить любую подпапку.
    // Если путь до папки заканчивается так "*" или так ".*", тогда в ней будут скомплированы все файлы с расширениями .ts, .tsx, .d.ts, а также .js и .jsx, если опция "allowJs" будет равна true.
    , "include": [ // Секция "include" позволяет скомпилировать все файлы, находящиеся в заданных папках.
    // Если секция "files" и секция "include" заданы вместе, то будут скомпилированы только файлы, перечисленные в обеих секциях.
    // Все файлы, на которые есть ссылки во включенных файлах из секции "files" и секции "include", также скомпилируются.
    "src/**/*"
    ]
    , "exclude": [ // Секция "exclude" позволяет исключить при компиляции определенные файлы, которые находятся в заданных папках секции "include" или в папках всего проекта, если секция "include" не задана.
    // Компилятор не будет учитывать перечисленные в секции "exclude" файлы TypeScript, которые находятся в папках из секции "include".
    // Однако файлы, заданные в секции "files" будут обязательно скомпилированы.
    // Если секция "exclude" не указана, то по умолчанию будут исключаться из компиляции все файлы из папок:
    // - node_modules,
    // - bower_components,
    // - jspm_packages,
    // - файлы из папки, указанной в опции компилятора "outDir".
    "src/**/*.spec.ts"
    , "node_modules"
    ]
    }