Open5

Tips: tsconfig.json

bisquit_devbisquit_dev

include, exclude, declarationDirといった相対指定パスの起点はそのconfigファイル

These filenames are resolved relative to the directory containing the tsconfig.json file.

https://www.typescriptlang.org/tsconfig#include

extendsが絡むと紛らわしいが、常にその記述が書かれた(originated in)ファイルからの相対パスとなる。

All relative paths found in the configuration file will be resolved relative to the configuration file they originated in.

https://www.typescriptlang.org/tsconfig#extends

bisquit_devbisquit_dev

baseUrlはほとんどの場合指定不要

baseUrlは非相対パスを解決するための機能で、それ以外の使用は非推奨っぽい。

https://www.typescriptlang.org/tsconfig#baseUrl

以前はpaths使う時に必須だったが4.1からは不要になったらしく、pathsはbaseUrlがなければtsconfig自体からの相対パスとなる。

bisquit_devbisquit_dev

デフォルトで*(グロブパターン)に含まれる拡張子

.ts .tsx .d.ts

グロブパターンがファイルの拡張子を含まない場合、サポートされる拡張子のみが含まれるようになります(例:.ts、.tsxと.d.tsはデフォルトでインクルードされ、.jsと.jsxはallowJsが設定された場合のみインクルードされます)。

https://www.typescriptlang.org/ja/tsconfig#:~:text=グロブパターンがファイルの拡張子を含まない場合、サポートされる拡張子のみが含まれるようになります(例:.ts、.tsxと.d.tsはデフォルトでインクルードされ、.jsと.jsxはallowJsが設定された場合のみインクルードされます)。

.vueのような拡張子はデフォで含まれないので明示的に含める必要がある。

https://github.com/vuejs/create-vue/blob/main/template/tsconfig/base/tsconfig.app.json

bisquit_devbisquit_dev

最終的に使われる設定を見る

tsc --showConfig

とすることで実際にtscが使用する設定をプリントできる。

特にfilesフィールドにincludesから計算された実際のファイルが入るのでどのファイルが含まれるか確認するのに便利。

configの指定は通常のtsc -pと同じ

tsc -p client/tsconfig.client.json --showConfig
# あるいはファイル名がtsconfig.jsonなら、含まれるディレクトリでも可
# tsc -p client --showConfig