LoginSignup
0
1

More than 1 year has passed since last update.

Typescriptを実行するための定義ファイル(tsconfig.json)

Last updated at Posted at 2023-01-15

tsconfig.jsonとは

typescriptはtrans filerなので、ブラウザーで実行させるためにはjsファイルへの変換が必要です。
変換する中で色々なoptionを付与することができます。
tsconfig.jsonにはTypescriptを動かすためのoptionを定義をします。
どの機能(option)を無・有効にするかをtsconfig.jsonで定義できます。 沢山の機能がありますが、以下のデフォルトoptionで問題ありません。

tsconfig.jsonには何が?

{
    "compilerOptions": {
      "strict": true,
      "lib": [
        "ES2016", 
        "dom"
      ],
      "module": "CommonJS",
      "alwaysStrict": true,
      "noImplicitAny": true,
      "noImplicitThis": true,
      "sourceMap": true, 
      "downlevelIteration": true
    } 
  }

・strict
typescript機能をどれぐらい厳しく適用させるかを定義。
Typescriptが提供する機能の中、一番核心的なものはTYPE拡張です。基本的にjsはtypeを記述していません。
jsは状況的にデータのtypeを判断し、自動変換が行われるゆるい体系です。
大規模のpjでjsをtsに変えようとした時に、最初から大量のデータにtypeを付けることは難しいです。
しかし、strictにfalseを付けることにより、plain jsファイルでも問題なく動作し、
最初は1/4・・・次は2/4・・・のようにバッファーを取りながら作業が可能になります。
trueにした場合は、compilerがこの部分はこのように直せと情報を教えます。

・noImplicitAny
strictの下部optionのひつと。jsのtypeは記述していないためcompilerはこれが何のtypeがわからないです。なので、tsで基本的にいずれのtypeでもいいよという意味で"any"typeを付けますが、tureをすると、anyが付けられることができなく、明確にtypeを付けなければなりません。

・sourceMap
tsファイルを実行すると、tsをjsに変換した結果を出力するターゲットdirの中には**.jsと**.js.mapができます。
ここで、**.js.mapがsourceMapのファイルです。
実際に作成したコードはtsであり、browser上ではjsとして動いているので、もし問題が発生した際はcompileしたjs fileでは問題点を特定することはむずかしいかと思います。
ということで、問題点が分かるために原本ファイル(ts)と変換後のファイル(js)を結びつけさせるための連携情報を持っているファイルです。

sourceMap

tsconfig.jsonでsourceMapをtrueにして、tsファイルを実行した後のdist構成です。 image1.png

distのindex.html中身です。
srcにはtsをjsに変換したファイルが定義されています。
image2.png

**.js.map中身の一部です。tsとjs間の連携情報が定義されています。

{"version":3,"sources":["src/core/router.ts","src/core/view.ts","src/core/api.ts","src/config.ts","src/page/news-detail-view.ts","src/page/news-feed-view.ts","src/page/index.ts","src/store.ts","src/app.ts","../../../../../../../../usr/local/lib/node_modules/parcel-bundler/src/builtins/hmr-runtime.js"],"names":["OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCal

0
1
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
0
1