LoginSignup
1
2

More than 3 years have passed since last update.

TypeScript設定パラメータまとめ

Posted at

tsconfig.jsonの初期状態

以下はinitした直後のtsconfig.jsonです。
ちなみにバージョンは3.8.2。

tsc --init
tsconfig.json
{
  "compilerOptions": {
    /* Basic Options */
    // "incremental": true,                   /* Enable incremental compilation */
    "target": "es5",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
    "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
    // "lib": [],                             /* Specify library files to be included in the compilation. */
    // "allowJs": true,                       /* Allow javascript files to be compiled. */
    // "checkJs": true,                       /* Report errors in .js files. */
    // "jsx": "preserve",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
    // "declaration": true,                   /* Generates corresponding '.d.ts' file. */
    // "declarationMap": true,                /* Generates a sourcemap for each corresponding '.d.ts' file. */
    // "sourceMap": true,                     /* Generates corresponding '.map' file. */
    // "outFile": "./",                       /* Concatenate and emit output to single file. */
    // "outDir": "./",                        /* Redirect output structure to the directory. */
    // "rootDir": "./",                       /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
    // "composite": true,                     /* Enable project compilation */
    // "tsBuildInfoFile": "./",               /* Specify file to store incremental compilation information */
    // "removeComments": true,                /* Do not emit comments to output. */
    // "noEmit": true,                        /* Do not emit outputs. */
    // "importHelpers": true,                 /* Import emit helpers from 'tslib'. */
    // "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
    // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */

    /* Strict Type-Checking Options */
    "strict": true,                           /* Enable all strict type-checking options. */
    // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */
    // "strictNullChecks": true,              /* Enable strict null checks. */
    // "strictFunctionTypes": true,           /* Enable strict checking of function types. */
    // "strictBindCallApply": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
    // "strictPropertyInitialization": true,  /* Enable strict checking of property initialization in classes. */
    // "noImplicitThis": true,                /* Raise error on 'this' expressions with an implied 'any' type. */
    // "alwaysStrict": true,                  /* Parse in strict mode and emit "use strict" for each source file. */

    /* Additional Checks */
    // "noUnusedLocals": true,                /* Report errors on unused locals. */
    // "noUnusedParameters": true,            /* Report errors on unused parameters. */
    // "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */
    // "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */

    /* Module Resolution Options */
    // "moduleResolution": "node",            /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
    // "baseUrl": "./",                       /* Base directory to resolve non-absolute module names. */
    // "paths": {},                           /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
    // "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
    // "typeRoots": [],                       /* List of folders to include type definitions from. */
    // "types": [],                           /* Type declaration files to be included in compilation. */
    // "allowSyntheticDefaultImports": true,  /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
    "esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
    // "preserveSymlinks": true,              /* Do not resolve the real path of symlinks. */
    // "allowUmdGlobalAccess": true,          /* Allow accessing UMD globals from modules. */

    /* Source Map Options */
    // "sourceRoot": "",                      /* Specify the location where debugger should locate TypeScript files instead of source locations. */
    // "mapRoot": "",                         /* Specify the location where debugger should locate map files instead of generated locations. */
    // "inlineSourceMap": true,               /* Emit a single file with source maps instead of having a separate file. */
    // "inlineSources": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */

    /* Experimental Options */
    // "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
    // "emitDecoratorMetadata": true,         /* Enables experimental support for emitting type metadata for decorators. */

    /* Advanced Options */
    "forceConsistentCasingInFileNames": true  /* Disallow inconsistently-cased references to the same file. */
  }
}

詳細

大項目で7つに別れてます。

Basic Options

TypeScriptをBuildするために必要な基本的な設定項目。
出力先のJavaScriptのバージョンやコメントを削除するか、出力先はどうするかなどなど。

パラメータ 説明
incremental boolean 変更があった分だけをコンパイルし直すか。
target string どのバージョンでjsを出力するかを指定する。
module string 使用するmoduleシステムを指定する。
lib ビルドに含めるライブラリファイルのリストを指定する。指定なしの場合デフォルトのライブラリリストになる。
allowJs boolean JavaScriptファイルをBuildできるようにするか。
checkJs boolean .jsファイルにエラーがある場合報告するか。
jsx string .tsxファイルでJSXをサポートするか。
declaration boolean 対応する「.d.ts」ファイルを生成するか。
declarationMap boolean 対応する各「.d.ts」ファイルのソースマップを生成するか。
sourceMap boolean 対応する「.map」ファイルを生成するか。
outFile string 出力を連結して単一のファイルに出力する。出力先を指定する。
outDir string 出力構造をディレクトリにリダイレクトする。出力先を指定する。
rootDir string 入力ファイルのルートディレクトリを指定する。ルートディレクトリのパスを指定する。
composite boolean 参照プロジェクトのBuildを有効にするか。
tsBuildInfoFile boolean incrementalによって出力する変更差分記録ファイルの出力先を指定する。
removeComments boolean 「/*」で始まるコピーライトヘッダのコメント以外の全てのコメントを削除するか。
noEmit boolean コンパイラでのエラーチェックのみを行い、ファイルを出力しないか。
importHelpers boolean 「tslib」をヘルパーとして使用するか。
downlevelIteration boolean targetが「ES5」か「ES3」のとき、Generators・Iteration。spread構文の「downpile」をサポートするか。
isolatedModules boolean 各ファイルを別々のモジュールとして変換するか。

Strict Type-Checking Options

厳密な型チェックをオンオフするための設定項目。
かならずuse strictするか、暗黙のanyを許すか、厳密なnullチェックをするかなどなど。

パラメータ 説明
strict boolean 厳密な型チェックオプションを全て有効にするか。
noImplicitAny boolean 暗黙のany型を持つ式や宣言をエラーにするか。
strictNullChecks boolean 厳密なnullチェックを有効にするか。
strictFunctionTypes boolean 関数型の厳密なチェックを有効にするか。
strictBindCallApply boolean Functionのbind, call, applyに関する厳密なチェックを有効にするか。
strictPropertyInitialization boolean クラスのプロパティ初期化の厳密なチェックを有効にするか。
noImplicitThis boolean 暗黙のうちのany型でthis式のエラーを発生させるか。
alwaysStrict boolean 厳密モードで解析して各ソースファイルに対して「use strict」を発行するか。

Additional Checks

use strictよりも厳しい型チェックをオンオフするための設定項目。
未使用のlocal変数をエラーにするなどなど。

パラメータ 説明
noUnusedLocals boolean 未使用のlocal変数をエラーにするか。
noUnusedParameters boolean 未使用のパラメータをエラーにするか。
noImplicitReturns boolean 関数内の全てのコードパスが値を返さない場合にエラーとするか。
noFallthroughCasesInSwitch boolean switch文でフォールスルーケースをエラーとするか。

Module Resolution Options

モジュールの参照解決に関する設定項目。

パラメータ 説明
moduleResolution string モジュールの解決方法を指定する。
baseUrl string 非相対モジュール名を解決する際のベースディレクトリを指定する。
paths Object baseUrlを基準とした検索位置にインポートを再マッピングするエントリーのパスのリストを指定する。
rootDirs string[] 結合コンテンツが実行時のプロジェクトの構造を表すルートディレクトリのリストを指定する。
typeRoots string[] 型定義を含めるディレクトリのリストを指定する。
types string[] Buildに含める宣言ファイルを指定する。
allowSyntheticDefaultImports boolean デフォルトのエクスポートなしでモジュールからのデフォルトのインポートを許可するか。
esModuleInterop boolean 全てのインポート用のネームスペースpブジェクトを作成することによりCommonJSとESモジュール間の相互運用性を有効にするか。
preserveSymlinks boolean シンボリックリンク元を起点とした相対パスではなくシンボリックリンクが置かれている場所からの相対パスとするか。
allowUmdGlobalAccess boolean モジュールの中でimportせずにグローバルに露出しているUMDのシンボルをアクセス可能にするか。

Source Map Options

sourceMapに関する設定項目。

パラメータ 説明
sourceRoot string ソースの場所ではなくデバッガがTypeScriptファイルを検索する場所を指定する。
mapRoot string 生成された場所ではなくデバッガマップファイルを件さうする場所を指定する。
inlineSourceMap boolean 別のファイルを用意するのではなくソースマップを含む単一のファイルを生成するか。
inlineSources boolean 単一ファイル内のソースマップと一緒にソースを発行する。

Experimental Options

実験的な機能のサポートオプションについての設定項目。

パラメータ 説明
experimentalDecorators boolean 実験的な機能である「 ES7 decorators」のサポートを有効にするか。
emitDecoratorMetadata boolean 実験的な機能である「emitting type metadata for decorators」のサポートを有効にするか。

Advanced Options

直訳して高度なオプション。

パラメータ 説明
forceConsistentCasingInFileNames boolean 大文字小文字を区別して参照を解決するようにする。

あとがき

TypeScript、今となっては使うのが当たり前というくらいスタンダードになってきていますね。
筆者も使い始めていますがすでにセットアップされたプロジェクトに参加したことしかなく、tsconfig.jsonの設定について全然わかっていなかったため改めてまとめました。
実際にはinitコマンドでは生成されないオプションもあったりするのでこれで全てではありませんが。
自分用のメモにするとともに同じような境遇のTypeScript初学者の道しるべになれば幸いです。

マサカリ歓迎!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2