Опции компилятора¶
Если сравнить компилятор tsc с фортепиано, то его опции сопоставимы с камертоном, позволяющим настроить его наилучшим образом, что на практике означает - сократить время сборки и повысить типобезопасность проекта.
strict¶
--strict - активирует все флаги, входящие в группировку строгого режима и сопутствующие повышению типобезопасности программы. На данный момент флаг strict активирует следующие опции компилятора: --strictNullChecks, --noImplicitAny, --noImplicitThis, --alwaysStrict, --strictFunctionTypes, --strictPropertyInitialization и --strictBindCallApply. Несмотря на то, что флаг strict активирует сразу все указанные флаги, при желании конкретные флаги можно отключить.
1 2 3 4 5 6 | |
type: boolean default: false values: true, false
suppressExcessPropertyErrors¶
--suppressExcessPropertyErrors - если данная опция активна, то компилятор перестает проверять литералы объекта на излишние члены.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 | |
suppressImplicitAnyIndexErrors¶
--suppressImplicitAnyIndexErrors - при активной опции --noImplicitAny подавляет ошибки, связанные с добавлением динамических свойств в объекты, у которых отсутствует индексное определение.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример для неактивной опции
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
Пример для активной опции
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
noImplicitAny¶
--noImplicitAny - при активной опции выводит ошибку, если вывод типов установил принадлежность типа члена к any.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример с неактивной опцией
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Пример с активной опцией
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
checkJs¶
--checkJs - данная опция говорит компилятору, что код, который находится в файлах с расширением .js, также нужно проверять на ошибки. При этом можно исключить определенные файлы из проверки, добавив им строку // @ts-nocheck. Или наоборот, можно попросить компилятор проверить только помеченные как // @ts-check файлы без активации опции --checkJs. К тому же, можно игнорировать ошибки на конкретных строках, указав // @ts-ignore: error message предыдущей строке.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Кроме этого, при активной опции --checkJS компилятору с помощью аннотации /** @type {...} */ можно указывать типы прямо в файлах с расширением .js.
При использовании JavaScript в TypeScript коде нарушается типобезопасность программы.
1 2 3 4 5 | |
1 2 3 4 5 | |
Но это можно исправить с помощью специальной аннотации, которая располагается в JavaScript коде.
1 2 3 4 5 6 | |
1 2 3 4 5 6 | |
JSX¶
--jsx - данная опция указывает компилятору, какое расширение указывать .tsx файлам после компиляции. Все дело в том, что у React существует два вида приложений, одни создаются для веб-платформ, другие для мобильных платформ. Кроме того, файлы для веб-платформ на входе должны иметь расширение .jsx, в то время как для мобильной платформы — .js. Поэтому компилятору нужно указывать, в какой именно формат преобразовывать файлы с расширением .tsx.
При указании "react" в качестве значения опции --jsx компилятор преобразует .tsx в .jsx файлы, которые затем компилируются в .js. Если в качестве значения будет указано "preserve", то компилятор преобразует .tsx в .jsx, которые сохраняют XML-подобный синтаксис. Если указать значение "react-native", то компилятор преобразует файлы .tsx в требующийся .js.
1 2 3 4 5 | |
type: string default: preserve values: react, react-native, preserve
jsxFactory¶
--jsxFactory - данная опция позволяет при трансляции файлов .tsx в .js переопределить фабрику рендера.
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 | |
Установив желаемое значение текущей опции появляется возможность переопределить функцию рендера React на любую другую.
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 | |
Кроме того, подобного поведения можно добиться при помощи нотации /** @jsx identifier */, которая указывается в начале файла, а вместо identifier вписывается имя функции рендера.
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
Помимо этого, аннотация /** jsx identifier */ позволяет переопределить функцию рендера, переопределенную с помощью опции --jsxFactory.
1 2 3 4 5 | |
type: string default: React.createElement values: "*"
target (t)¶
--target, или сокращенно -t - указывает компилятору, с какой версией спецификации должен быть совместим генерируемый JavaScript код. По умолчанию установлена совместимость с ES3. Кроме того, можно указывать совместимость с ES5, ES2015 (она же ES6), ES2016, ES2017, ESNext. Стоит добавить, что ESNext равноценно latest version.
1 2 3 4 5 | |
type: string default: es3 values: es3, es5, es6 / es2015, es2016, es2017, esnext
extends¶
extends - с помощью этого свойства можно расширять конфигурацию tsconfig.json.
1 2 3 4 5 6 7 | |
1 2 3 4 5 | |
type: string default: "" values: *
Кроме того, при использовании механизма расширения (extends) поиск файла конфигурации taconfig.json может осуществляться по пакетам (packages) NodeJS модулей, находящихся в директории node_modules.
1 2 3 4 5 6 7 8 9 10 11 | |
Алгоритм разрешения аналогичен алгоритму поиска модулей самого NodeJS. Проще говоря, если путь, указанный в качестве значения атрибута extends, не будет найден в директории node_modules, находящейся в текущей директории, то поиск продолжится в директории node_modules вверх по дереву. Но есть одна особенность, которая заключается в том, что при разрешении пути компилятор tsc, зайдя в директорию node_modules, сначала проверяет package.json на наличие атрибута tsconfig, которому в качестве значения указывают путь до конфигурационного файла. Если атрибут tsconfig найден, то конфигурация, на которую он ссылается, будет установлена в качестве расширяемой. Если package.json не содержит атрибут tsconfig, то в качестве расширяемого конфигурационного файла будет выбран файл tsconfig.json, находящийся в корне директории. Если в корне директории файла tsconfig.json найдено не будет, то поиск продолжится вверх по дереву.
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
alwaysStrict¶
--alwaysStrict - данная опция говорит компилятору, что рассматривать и генерировать код нужно с учетом строгого режима “use strict”.
1 2 3 4 5 | |
type: boolean default: false values: true, false
strictNullChecks¶
--strictNullChecks - активировав эту опцию, компилятор не позволяет указывать в качестве значения типы Null и Undefined, если они не были указаны в аннотации.
1 2 3 4 5 | |
type: boolean default: false values: true, false
stripInternal¶
--stripInternal - когда данная опция активна, компилятор не создает деклараций .d.ts для файлов, помеченных как /** @internal */
1 2 3 4 5 | |
type: boolean default: false values: true, false
noImplicitThis¶
--noImplicitThis - в активном состоянии запрещает использование this в местах, не предусмотренных контекстом.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример с неактивной опцией
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Пример с активной опцией
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
noImplicitUseStrict¶
--noImplicitUseStrict - при активной опции ошибки будут выводиться в случаях, при которых в поток компиляции попадут файлы, содержащие ‘use strict’. Кроме того, скомпилированные файлы также не будут содержать указание ‘use strict’.
1 2 3 4 5 | |
type: boolean default: false values: true, false
baseUrl¶
--baseUrl - указывает базовый путь, относительно которого будет производиться поиск модулей.
1 2 3 4 5 | |
type: string default: "" values: base path
1 2 3 4 5 6 7 | |
paths¶
--paths - с помощью этой опции создаются псевдонимы для используемых в программе модулей.
1 2 3 4 5 6 7 | |
type: object default: null values: {[key]: *}
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
rootDir¶
--rootDir - с помощью этой опции можно ограничить область выборки файлов для компиляции. В качестве значения выступает строка — путь до конкретной директории или файла.
1 2 3 4 5 | |
type: string default: "" values: path to dir with .ts files
rootDirs¶
--rootDirs - с помощью этой опции можно ограничить область выборки файлов для компиляции. В качестве значения принимается массив с путями до директорий и файлов.
1 2 3 4 5 6 7 | |
type: array[ ] default: null values: path to dir with .ts files
traceResolution¶
--traceResolution - в случае активной текущей опции при компиляции будет выводиться информация о собираемых модулях.
1 2 3 4 5 | |
type: boolean default: false values: true, false
lib¶
--lib - с помощью этой опции можно управлять конструкциями, которые включены в ту или иную версию ES.
1 2 3 4 5 6 7 | |
type: string[ ] default: for es5 [dom, es5, ScriptHost], for es6 [dom, es6, dom.Iterable, ScriptHost] values: dom, webworker, es5, es6 / es2015, es2015.core, es2015.collection, es2015.iterable, ,es2015.promise ,es2015.proxy ,es2015.reflect ,es2015.generator ,es2015.symbol ,es2015.symbol.wellknown ,es2016 ,es2016.array.include ,es2017 ,es2017.object ,es2017.sharedmemory ,scripthost
noLib¶
--noLib - не использует декларацию lib.d.ts по умолчанию.
1 2 3 4 5 | |
type: boolean default: false values: true, false
noResolve¶
--noResolve - данная опция говорит компилятору не компилировать файлы, которые не были указаны в командной строке.
1 2 3 | |
1 2 3 4 | |
noStrictGenericChecks¶
--noStrictGenericChecks - отключает строгую проверку параметров типа для функциональных типов.
1 2 3 4 5 | |
type: boolean default: false values: true, false
preserveConstEnums¶
--preserveConstEnums - говорит компилятору не удалять из исходного кода перечисления (enum), объявленные как const.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример с неактивной опцией
1 2 3 4 5 6 7 8 | |
1 2 3 | |
Пример с активной опцией
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 | |
removeComments¶
--removeComments - удаляет комментарии из сгенерированного .js.
1 2 3 4 5 | |
type: boolean default: false values: true, false
noUnusedLocals¶
--noUnusedLocals - активная опция заставляет компилятор выводить сообщения о неиспользуемых элементах кода. Простыми словами, если в коде что-то объявлено, но не используется, будет возникать ошибка.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
noUnusedParameters¶
--noUnusedParameters - данная опция заставляет компилятор выводить ошибки, если в коде будут найдены функции, чьи параметры не используются (за исключением параметров, идентификаторы которых начинаются с нижней черты, например, _prop).
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
skipLibCheck¶
--skipLibCheck - при активной опции компилятор перестает проверять типы в файлах библиотеках с расширением .d.ts, что экономит время, но может привести к редким ошибкам, связанным с типами.
1 2 3 4 5 | |
type: boolean default: false values: true, false
declarationDir¶
--declarationDir - указывает директорию, откуда будут подключаться или в которую будут создаваться файлы декларации .d.ts.
1 2 3 4 5 | |
type: string default: "" values: path to dir with .d.ts
types¶
--types - декларации, которые размещены в /node_modules/@types/ и чьи идентификаторы перечислены в массиве, будут доступны глобально. В случае указания пустого массива, глобальный доступ к декларациям будет запрещен. К декларациям, которые запрещены глобально, можно получить доступ только путем импортирования модуля, описываемого декларацией.
1 2 3 4 5 | |
type: string[ ] default: null values: lib identifier
Важно - все примеры ниже производились после установки декларации.
npm i -D @types/react
Пример с отключенной опцией
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
Пример с пустым массивом
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 | |
Пример с установленным значением
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 | |
typeRoots¶
--typeRoots - ожидает массив путей до директорий с декларациями.
1 2 3 4 5 | |
type: string[ ] default: null values: path to .d.ts
allowUnusedLabels¶
--allowUnusedLabels - в случае, если флаг --allowUnusedLabels не активен, при выявлении неиспользуемых label возникают ошибки.
1 2 3 4 5 | |
type: boolean default: false values: true, false
noImplicitReturns¶
--noImplicitReturns - функции, имеющие возвращаемый тип, отличный от типа void, фактически могут не возвращать значение явно. Другими словами, чтобы удовлетворять условиям данной опции, в теле функции должен присутствовать лишь оператор return. Но при активной текущей опции функции будут обязаны возвращать значение явно.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
noFallthroughCasesInSwitch¶
--noFallthroughCasesInSwitch - при активной опции в случае, если блок кода case имеет код, при этом не имеет выхода из него (break или return), возникнет ошибка.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
outFile¶
--outFile - компилятор, при условии, что в качестве модулей указано amd или system, будет сохранять все скомпилированные модули в один файл, указанный в качестве значения опции.
1 2 3 4 5 | |
type: string default: "" values: path to bundle
до компиляции
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
после компиляции
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
allowSyntheticDefaultImports¶
--allowSyntheticDefaultImports - позволяет предотвращать ошибки, которые возникают во время сборки по причине несовместимости SystemJS и CommonJS. Дело в том, что в ES6 синтаксисе есть возможность экспорта по умолчанию (export default), после компиляции которого CommonJS испытывает трудности, так как не знает, что такое default. Чаще всего проблема возникает в случаях, когда разработка ведется с применением одних модулей, а подключаемые библиотеки используют другие.
1 2 3 4 5 | |
type: boolean default: false values: true, false
allowUnreachableCode¶
--allowUnreachableCode - если значение данной опции выставлено в true, то при обнаружении неиспользуемого кода будет выводиться сообщение об ошибке.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 10 11 12 | |
allowJs¶
--allowJs - в случае, когда код, одна часть которого написана на TypeScript, а другая на JavaScript, требуется собрать в общий файл, достаточно активировать текущую опцию.
1 2 3 4 5 | |
type: boolean default: false values: true, false
Пример
1 2 3 4 5 6 7 8 9 10 11 | |
reactNamespace¶
--reactNamespace - позволяет установить фабрику рендера .jsx синтаксиса.
1 2 3 4 5 | |
type: string default: "" values: "*"
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
pretty¶
--pretty - раскрашивает в разные цвета выводимые в консоль сообщения, делая их более понятными.
1 2 3 4 5 | |
type: boolean default: true values: true, false
moduleResolution¶
--moduleResolution - позволяет конкретизировать поведение модулей.
1 2 3 4 5 | |
type: string default: module === AMD | System | ES6 ? classic : node values: classic, node
exclude¶
exclude - в обычной ситуации под компиляцию рекурсивно попадают все файлы, которые включает в себя директория, содержащая tsconfig.json. Решением этой проблемы является свойство exclude, определенное в корне конфигурационного файла. В качестве его значения выступает массив с путями к файлам или директориям, которые следует исключить из компиляции.
1 2 3 4 5 | |
type: string[ ] default: null values: path to file or dir
noEmitHelpers¶
--noEmitHelpers - после компиляции файлов с расширением .ts каждый скомпилированный файл .js (модуль) содержит, если в этом есть необходимость, вспомогательный код (проще говоря, helpers), который помогает решить проблему совместимости версий ES. В большей степени этот код, находящийся в разных файлах (модулях), идентичен. Простыми словами, helpers повторяются от файла к файлу. Компилятор вынужден добавлять повторяющийся код, чтобы гарантировать работу каждого модуля по отдельности. Но если модули собираются в одну общую сборку, активация текущего флага укажет компилятору, что helpers нужно вынести в отдельный модуль, который будет доступен в зависящих от него частях кода. Это поможет избавиться от дублирования кода и сократит размер собранного файла.
1 2 3 4 5 | |
type: boolean default: false values: true, false
newLine¶
--newLine - по умолчанию новая строка обозначается \r\n на Windows и \r на nix системах. Для переопределения поведения используется данная опция.
1 2 3 4 5 | |
type: string default: platform specific values: CRLF, LF
inlineSourceMap¶
--inlineSourceMap - активная опция приводит к тому, что source maps записываются inline в .js файлы, а не выносятся в отдельные файлы .map.js.
1 2 3 4 5 | |
type: boolean default: false values: true, false
inlineSources¶
--inlineSources - при активной опции источник source map включается в файл вместе c source map. Работает в паре с опцией --inlineSourceMap.
1 2 3 4 5 | |
type: boolean default: false values: true, false
noEmitOnError¶
--noEmitOnError - несмотря на ошибки в TypeScript коде, компилятор все равно генерирует .js файлы. Для того чтобы компилятор генерировал файлы .js только в случае успешной компиляции, нужно активировать данную опцию.
1 2 3 4 5 | |
type: boolean default: false values: true, false
noEmit¶
--noEmit - при активной опции информация о компиляции перестает выводиться.
1 2 3 4 5 | |
type: boolean default: false values: true, false
charset¶
--charset - устанавливает формат входных файлов.
1 2 3 4 5 | |
type: string default: utf8 values: *
diagnostics¶
--diagnostics - выводит диагностическую информацию.
1 2 3 4 5 | |
type: boolean default: false values: true, false
declaration¶
--declaration - генерирует файлы декларации .d.ts из .ts файлов.
1 2 3 4 5 | |
type: boolean default: false values: true, false
downlevelIteration¶
--downlevelIteration - при активной опции становится возможно использовать итераторы при компиляции в версии ниже ES6. Помимо самих итераторов, становятся доступны и нововведения (for...of, Array Destructuring, Spread и т.д.), которые построены с их использованием.
1 2 3 4 5 | |
type: boolean default: false values: true, false
emitBOM¶
--emitBOM - Извлекает маркер последовательности байтов UTF-8 (BOM) в начале выходных файлов.
1 2 3 4 5 | |
type: boolean default: false values: true, false
emitDecoratorMetadata¶
--emitDecoratorMetadata - ...
1 2 3 4 5 | |
type: boolean default: false values: true, false
forceConsistentCasingInFileNames¶
--forceConsistentCasingInFileNames - запрещает несогласованные ссылки на один и тот же файл.
1 2 3 4 5 | |
type: boolean default: false values: true, false
help (h)¶
--help или -h - выводит список доступных опций.
1 2 | |
importHelpers¶
--importHelpers - импортирует таких помощников (helpers), как __extends, __rest и т.д.
1 2 3 4 5 | |
type: boolean default: false values: true, false
isolatedModules¶
--isolatedModules - транслирует каждый файл как отдельный модуль.
1 2 3 4 5 | |
type: boolean default: false values: true, false
listEmittedFiles¶
--listEmittedFiles - выводит список сгенерированных файлов.
1 2 3 4 5 | |
type: boolean default: false values: true, false
listFiles¶
--listFiles - выводит список участвующих в компиляции файлов.
1 2 3 4 5 | |
type: boolean default: false values: true, false
sourceRoot¶
--sourceRoot - в качестве значения принимает базовый путь до директории, в которой лежат исходники .ts, необходимые для ассоциации с source map.
1 2 3 4 5 | |
type: string default: "" values: path to source .ts dir
mapRoot¶
--mapRoot - место, откуда будут браться файлы .map.js.
1 2 3 4 5 | |
type: string default: "" values: ``
maxNodeModuleJsDepth¶
--maxNodeModuleJsDepth - максимальная глубина поиска зависимостей в /node_modules и загрузки файлов .js. Работает только с активной опцией --allowJs.
1 2 3 4 5 | |
type: number default: 0 values: 0...n
project (p)¶
--project или -p - с помощью этого флага можно указать как путь до директории, которая содержит tsconfig.json, так и на конкретный tsconfig.json файл.
1 2 | |
type: string default: `**values**:path to tsconfig.json`
init¶
--init - создает новый tsconfig.json со всеми доступными опциями, большинство из которых закомментировано, дабы создать оптимальную конфигурацию.
1 | |
version (v)¶
--version или -v - выводит информацию о текущей версии TypeScript.
1 2 | |
watch (w)¶
--watch или -w - запускает компилятор в режиме наблюдения за изменением файлов. При каждом изменении отслеживаемых файлов компиляция будет запущена автоматически.
1 2 | |
preserveSymlinks¶
--preserveSymlinks - текущая опция демонстрирует поведение, идентичное реализуемому в NodeJS с активным флагом --preserve-symlinks. При активной опции символические ссылки на модели (modules) и пакеты (packages) разрешаются относительно файла символической ссылки, а не относительно пути, к которому разрешается символическая ссылка. Кроме того, поведение при активной текущей опции противоположно поведению, предоставляемому Webpack с помощью флага со схожим по смыслу названием resolve.symlinks.
1 2 3 4 5 | |
type: boolean default: false values: true, false
strictFunctionTypes¶
--strictFunctionTypes - при активной опции параметры функций начинают сравниваться по контрвариантным правилам, в то время как при неактивной опции сравнения производятся по бивариантным правилам.
1 2 3 4 5 | |
type: boolean default: false values: true, false
locale¶
--locale - позволяет указать один из заданных языков для вывода диагностических сообщений.
1 2 3 4 5 | |
type: string default: platform specific values: English (US): en,Czech: cs,German: de ,Spanish: es ,French: fr,Italian: it ,Japanese: ja ,Korean: ko,Polish: pl ,Portuguese(Brazil): pt-BR ,Russian: ru,Turkish: tr,Simplified Chinese: zh-CN ,Traditional Chinese: zh-TW
strinctPropertyInitialization¶
--strictPropertyInitialization - при активной опции в случае, когда в классе присутствуют поля, не инициализированные в момент создания или в конструкторе, возникает ошибка. Более подробно данная тема раскрыта в главе “Классы - Definite Assignment Assertion Modifier”.
1 2 3 4 5 | |
type: boolean default: false values: true, false
1 2 3 4 5 6 7 8 9 | |
esModuleInterop¶
--esModuleInterop - с активной опцией сгенерированный код таких модулей формата CommonJS/AMD/UMD больше походит на код, сгенерированный Babel.
1 2 3 4 5 | |
type: boolean default: false values: true, false
emitDeclarationsOnly¶
--emitDeclarationsOnly - данная опция указывает компилятору, что нужно генерировать только файлы декларации с расширением .d.ts и пропускать файлы с расширением .js и .jsx. Такое поведение может быть полезно, если код, помимо компилятора TypeScript, компилируется ещё и с помощью Babel.
1 2 3 4 5 | |
type: boolean default: false values: true, false
resolveJsonModule¶
--resolveJsonModule - данная опция при активной опции --esModuleInterop и опции --module, установленной в commonjs, позволяет в среде NodeJS полноценно взаимодействовать с json.
1 2 3 4 5 | |
type: boolean default: false values: true, false
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
declarationMap¶
--declarationMap - при совместном использовании с активной опцией --declaration заставляет компилятор, помимо .d.ts, также генерировать .d.ts.map, которые позволяют при переходе к определению (go to definition) направлять в файл .ts, а не .d.ts.
1 2 3 4 5 | |
type: boolean default: false values: true, false
strictBindCallApply¶
--strictBindCallApply - текущий флаг, входящий в группировку --strict, активирует проверку вызова таких методов, как apply, call и bind. Это стало возможным благодаря добавлению двух новых типов, CallableFunction и NewableFunction, которые содержат обобщенное описание методов apply, call и bind, как для обычных функций, так и для функций конструкторов соответственно.
1 2 3 4 5 | |
type: boolean default: false values: true, false
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
showConfig¶
--showConfig - при активном текущем флаге компилятор tsc во время компиляции выведет в консоль содержимое конфигурационного файла tsconfig.json, разрешенного с учетом механизма расширения (extends), если таковой механизм имеет место быть. Этот функционал может быть очень полезным при отладке.
1 2 3 4 5 | |
type: boolean default: false values: true, false
build¶
--build - данный флаг указывает компилятору tsc, что проект нужно собирать как проект, использующий ссылки на другие проекты. Подробнее об этом можно узнать из главы Сборка с использованием ссылок на проекты. Также флаг --build может использоваться в сочетании со специфичными только для него флагами --verbose, --dry, --clean, --force, а также с флагом --watch.
type: string default: `**values**:paths to tsconfig.json or dir with tsconfig.json`
verbose¶
--verbose - текущий флаг указывает компилятору выводить более подробный отчет при инкрементальной сборке проекта. Используется только совместно с флагом --build.
dry¶
--dry - при указании текущего флага сборка будет выполнена без порождения выходных файлов. Данный флаг полезно использовать совместно с флагом --verbose. Используется только совместно с флагом --build.
clean¶
--clean - удаляет выходные файлы, соответствующие заданным входным. Используется только совместно с флагом --build.
force¶
--force - принудительно выполняет неинкрементальную сборку. Используется только совместно с флагом --build.
incremental¶
--incremental - флаг, при активации которого после первой компиляции проекта в заданной атрибутом outDir директории создается файл .tsbuildinf, который хранит метаинформацию об изменении файлов, что позволяет производить ускоренные инкрементальные сборки при всех последующих запусках компилятора.
1 2 3 4 5 6 | |
В случае, когда имя выходного файла задается с помощью флага --outFile, имя генерируемого файла .tsbuildinf будет включать в себя название выходного файла (.client.tsbuildinf для файла client.js и .server.tsbuildinf для server.js соответственно).
Примечание: создатели TypeScript заранее предупреждают, что генерируемые файлы .tsbuildinf не предназначены для использования сторонними библиотеками, так как их определение не будет обладать совместимостью от версии к версии.
Кроме того, с помощью флага --tsBuildInfoFile можно задать место сохранения файла .tsbuildinf.
1 2 3 4 5 6 7 | |
tsBuildInfoFile¶
--tsBuildInfoFile - флаг, с помощью которого указывается место сохранения файла .tsbuildinf, генерирующегося при активной опции --incremental и служащего для хранения метаинформации, призванной ускорить последующие сборки.
1 2 3 4 5 6 | |
allowUmdGlobalAccess¶
--allowUmdGlobalAccess - при активном текущем флаге становится возможным обращение к глобальным определениям из модулей.
1 2 3 4 5 | |
type: boolean default: false values: true, false
1 2 3 4 5 | |
1 2 3 4 5 | |
disableSourceOfProjectReferenceRedirect¶
--disableSourceOfProjectReferenceRedirect - при использовании механизма ссылок на проекты активация данного флага говорит компилятору, что в качестве информации о типах следует использовать файлы декларации .d.ts, а не исходные файлы проекта. Активация данного флага способна повысить производительность сборки, но вносит некоторую специфику, поэтому уместна лишь на больших проектах. Более подробно читайте об этом в главе, посвященной использованию ссылок на проекты.
1 2 3 4 5 | |
type: boolean default: false values: true, false
useDefineForClassFields¶
--useDefineForClassFields - данный флаг активирует новое поведение генерации конечного кода, доступное с версии v3.7 и предназначенное для предотвращения переопределения свойств при механизме наследования.
[Важно] Начиная с версии 4.0 логика компилятора TypeScript подразумевает непереопределяемое поведение, равнозначное поведению при активном текущем флаге.
1 2 3 4 5 | |
type: boolean default: false values: true, false
importsNotUsedAsValues¶
--importsNotUsedAsValues - задает стратегию, используемую компилятором для разрешения зависимостей модуля, путем уточнения формы импорта и экспорта. Более подробно о текущем флаге можно прочесть в главе "Импорт и экспорт только типа и флаг --importsNotUsedAsValues".
1 2 3 4 5 | |
type: string default: remove values: remove, preserve, error
assumeChangesOnlyAffectDirectDependencies¶
--assumeChangesOnlyAffectDirectDependencies - в режиме --watch + --incremental активация данной опции позволяет компилятору отказаться от перепроверок\перестраивания файлов, которые на основе метаинформации расцениваются затронутыми. Вместо этого будет перепроверяться\перестраиваться только непосредственно измененные файлы и файлы, их импортирующие.
Представьте, что fileA.ts импортирует fileB.ts, который импортирует fileC.ts, который импортирует fileD.td.
При активном режиме --watch изменения в файле fileD.ts означают, что, как минимум, будут проверены fileC.ts, fileB.ts и fileA.ts. При активной опции --assumeChangesOnlyAffectDirectDependencies проверке подвергнется лишь fileA.ts и fileB.ts.
1 2 3 4 5 6 7 | |
type: boolean default: false values: true, false
watchFile¶
--watchFile - стратегия наблюдения за отдельными файлами.
1 2 3 4 5 6 7 | |
type: string default: useFsEvents values: fixedPollingInterval, priorityPollingInterval, dynamicPriorityPolling, useFsEvents, useFsEventsOnParentDirectory
описание
fixedPollingInterval: Проверять каждый файл на наличие изменений несколько раз в секунду с фиксированным интервалом.priorityPollingInterval: Проверять каждый файл на наличие изменений несколько раз в секунду, но использовать эвристику для проверки файлов определенных типов реже, чем других.dynamicPriorityPolling: Использовать динамическую очередь, в которой менее часто изменяемые файлы будут проверяться реже.useFsEvents[ПО УМОЛЧАНИЮ]: Пытаться использовать собственные события операционной системы/файловой системы для изменения файлов.useFsEventsOnParentDirectory: Пытаться использовать собственные события операционной системы/файловой системы для прослушивания изменений в каталогах, содержащих файл. Это может использовать меньше файловых наблюдателей, но также быть менее точным.
watchDirectory¶
--watchDirectory - стратегия наблюдения за целыми деревьями каталогов в системах, в которых отсутствует рекурсивная функция наблюдения за файлами.
1 2 3 4 5 6 7 | |
type: string default: useFsEvents values: fixedPollingInterval, dynamicPriorityPolling, useFsEvents
описание
fixedPollingInterval: Проверять каждый каталог на наличие изменений несколько раз в секунду с фиксированным интервалом.dynamicPriorityPolling: Использовать динамическую очередь, в которой менее часто изменяемые каталоги будут проверяться реже.useFsEvents[ПО УМОЛЧАНИЮ]: Пытаться использовать собственные события операционной системы/файловой системы для изменений каталога.
fallbackPolling¶
--fallbackPolling - при использовании событий файловой системы этот параметр определяет стратегию опроса, которая используется, когда в системе заканчиваются собственные наблюдатели файлов и/или не поддерживаются собственные средства просмотра файлов.
1 2 3 4 5 6 7 | |
type: string default: useFsEvents values: fixedPollingInterval, dynamicPriorityPolling, priorityPollingInterval
описание
fixedPollingInterval: Проверять каждый файл на наличие изменений несколько раз в секунду с фиксированным интервалом.dynamicPriorityPolling: Использовать динамическую очередь, в которой менее часто изменяемые файлы будут проверяться реже.priorityPollingInterval: Проверять каждый файл на наличие изменений несколько раз в секунду, но использовать эвристику для проверки файлов определенных типов реже, чем других.
synchronousWatchDirectory¶
--synchronousWatchDirectory - отключить отложенное наблюдение за каталогами.
1 2 3 4 5 6 7 | |
type: boolean default: false values: true, false
noUncheckedIndexedAccess¶
--noUncheckedIndexedAccess - при активной текущей опции обращаться к динамическим членам объекта разрешается только после подтверждения их существования, а также совместно с такими механизмами, как опциональный оператор !. или оператор опциональной последовательности ?. .
1 2 3 4 5 6 7 | |
type: boolean default: true values: true, false
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
noPropertyAccessFromIndexSignature¶
--noPropertyAccessFromIndexSignature - активирует поведение, запрещающее обращение через точечную нотацию к динамическим членам объекта, определяющего строковую индексную сигнатуру,
1 2 3 4 5 6 7 | |
type: boolean default: false values: true, false
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
explainFiles¶
--explainFiles - команда, позволяющая выводить информацию о зависимостях проекта не только в консоль, но и файл, или даже открывать в visual studio code.
1 2 3 4 5 | |