ts-loaderとbabel-loaderを組み合わせる babel-loaderだけで、TypeScriptはトランスパイルが可能です。 具体的には @babel/preset-typescript を使います。 もしBabelが必要な状況なのであれば、ts-loaderは必要ありません。 逆に、Babelが不要なのであればts-loaderが必要です。 しかし、 レガシーブラウザ向けにBabelを通したもの モダンブラウザ向けにTSをトランスパイルしただけのもの の両方が必要な場合は、自分はts-loaderとbabel-loaderを組み合わせるようにしています。 私の環境ではtsconfig.jsonはいずれの場合も次のようなイメージでした。 project │ .babelrc │ package-lock.json │ package.json │ tsconfig.json