# TypeScriptの設定

TypeScriptをJavaScriptにコンパイルする際に設定ファイルを記述しておくことで、どのようにコンパイルするか設定することができます。

以下コマンドを実行します。

```bash
tsc --init
```

こちらを実行すると、以下のような`tsconfig.json`というコンパイル時の設定ファイルが作成されるかと思います。

{% code title="tsconfig.json" %}

```json
{
  "compilerOptions": {
    ...
    "target": "es2016"
    ...
 }
    
```

{% endcode %}

こちらの中身を確認すると、いくつかの設定が記述されているかと思います。

各設定に関して詳細な説明は省略します。

こちらのファイルを一部修正します。

まず、 `// "rootDir": "./",`と記述されているかと思いますが、こちら先頭の`/`を削除して、`"rootDir": "./src"`としましょう。

<pre class="language-json"><code class="lang-json">...
<strong>   "rootDir": "./src",   
</strong>...
</code></pre>

こちらは、TypeScriptのファイルがあるディレクトリを指し示すもので、基本的に`src`のようなディレクトリを作成し、そこにまとめて管理します。このように記述すると、もし`src`外のtsファイルを、`src`内のtsファイルで呼び出す際に、エラーとなります。

次に、`// "outDir": "./",`と記述されているかと思いますが、こちらも先頭の`/`を削除して、`"outDir": "./dist"`としましょう。

<pre class="language-json"><code class="lang-json">...
<strong>    "outDir": "./dist",
</strong>...
</code></pre>

こちらは、コンパイルしたJavaScriptファイルを格納するディレクトリを指し示すもので、こちらもdistのようなディレクトリを作成し、そこに格納するようにします。

上記のように設定したので、`ts_practice`内に、`src`ディレクトリと、`dist`ディレクトリを作成し、`src`ディレクトリに`index.t`sを移動しましょう。また、`index.js`は削除しましょう。

Warpで以下コマンドにて、コンパイルします。ちなみにコンパイル時に、ファイルの指定をしない場合は、すべてのtsファイルがコンパイルされます。

```
tsc
```

上記のコマンドにて、distディレクトリ内に、`index.js`が作成されたかと思います。

作成された`index.js`を確認すると、先頭に以下のような記述があるかと思います。

```javascript
"use strict";
```

こちらは、tsconfig.jsonにて`"strict": true`という設定がされており、こちらは、型チェックを厳しくすることができる設定で、ここでは詳細な説明は省略します。
