tsconfig.jsonとは?
TypeScriptでコンパイルの設定を行うファイルです。
作成方法
下記コマンドで生成できます。
1 |
npx tsc --init |
デフォルトの挙動
tscと打つだけで全てのtypescriptファイルがコンパイルされます。(tsconfig.jsonがない場合は一つ一つやるしかなかった。)
内容
下記のような内容になっています。各行がコンパイル時にチェックをする内容になっています。大部分がコメントアウトされていますがコメントアウトされている行がデフォルトでチェックする設定になっています。もしチェックを外したい場合はコメンツアウトを外し、false等に変更する必要があります。
1 2 3 4 5 6 7 8 9 |
"compilerOptions": { /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 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. */ ‥ |
compilerOptions
設定項目 | 内容 | デフォルト |
---|---|---|
strictNullChecks
|
変数にNullが代入されたらエラーとします。 | |
target | 変換後のesのバージョンを指定できます。 | es3 |
lib | TypeScriptが用意している型定義を指定してコンパイル時にそれを考慮してくれるようにする。 | targetによって変わるが、様々な定義ファイル(*.d.ts)
例:ES5、DOMなど。 |
allowJs | JavaScriptをコンパイル対象に含む | |
checkJs | JSもTSと同様にエラーをチェックするか。allowJsと一緒に指定する必要がある。これ単体では使わない。 | |
jsx | Reactで使う。 | |
declaration
|
型定義ファイルが作られる。 | |
declarationMap
|
||
sourceMap | JSとTSの架け橋のマップファイルを作成する。ブラウザでTypeScriptファイルを見たい場合に指定します。ブラウザの開発者ツールのSourcesでtsファイルが生成されています。 | false |
outDir | コンパイル後のJSの出力先 | |
rootDir | デフォルトだとoutDirは階層がちゃんと作られない場合があります。これを指定すれば階層までちゃんと再現してくれます。 | |
removeComments | コメントを消すかどうか。 | |
noEmit | 何も出力しない。TSのコードがちゃんと書けているかのエラーだけチェックする。 | |
downlevelIteration
|
コード書いてfor 〜 ofが動かない場合に使う。 | false |
noEmitOnError | エラーが発生した場合はJSコードを変換しない。 | |
strict | 7個の別の設定値が全てtrueになる。 | |
noImplicitAny
|
暗黙のanyは避けようよ。 | |
noUnusedLocals
|
使ってないローカル変数は禁止する。 | |
noImplicitReturns
|
returnを明示しろ。 |
include
コンパイル対象を絞れます。
exclude
特定のtypescriptファイルをコンパイル対象から除きたい場合に使います。なお、includeを指定しているものをexcludeした場合はこちらが優先されます。
デフォルトの挙動
何もexcludeを記述しない場合はデフォルトで以下のフォルダはのぞいてくれます。
1 |
node_modules |
ただ、明示的にexcludeを指定する場合はnode_modulesも指定しないとだめです。上書きされてしまいます。
ワイルドカード
1 2 |
*.spec.ts // 特定のファイル名がついているものだけ。 **/index.ts //特定ディレクトリだけ |
files
ファイルのみを指定します。ディレクトリは指定できません。
1 |
src/index.ts |
この記事へのコメントはありません。