9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

tsconfigのincludeやexcludeの初期設定を理解しておらず必要以上にコードを書いていた話

Last updated at Posted at 2022-01-10

この記事の概要

見よう見まねでtsconfig.jsonの設定をしていたので今まで何回か無駄なコードを書いてしまっていました。
これから新しくtsconfig.jsonを作成する人が少しでも少ないコード量で設定を終えられる助けになれば良いな、と思って書いた記事です。

include編

無駄に書いていたコード

だいたいいつもこんな感じで書いていました。

tsconfig.json
{
  "include": ["src/**/*.ts", "src/**/*.tsx"]
}

これで良かった

拡張子を指定しないで、ひとまとめ。

tsconfig.json
{
  "include": ["src/**/*"]
}

説明

デフォルトでは.ts.tsx.d.tsのみをサポートしています。

allowJSを指定すると.js.jsxもincludeされますが、いつもfalseにしていたにも関わらず.ts.tsxを記載していました。
明示的になるので悪いことも無いと思いますが、知っててやるのと知らないでやるのには大きな隔たりがあるよな……と感じています。

exclude編

無駄に書いていたコード

プロジェクトによって多少違いますが、だいたいこんな感じでした。

tsconfig.json
{
  "compilerOptions": {
    "outDir": "dist",
    // その他色々な設定
  },
  "exclude": ["dist", "node_modules"]
}

これで良かった

記載そのものが不要。

tsconfig.json
{
  "compilerOptions": {
    "outDir": "./dist",
    // その他色々な設定
  },
}

説明

デフォルトでexcludeされるのはnode_modules, bower_components, jspm_packages, そしてoutDirです。

そのため例に挙げたような設定であればまさにデフォルトそのまま。
記載する必要がありません。

こちらも明示的になるので悪いとは思いませんが、デフォルトを知っていればあえて指定することもないのかな?と思います。

9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?