created: 2019-05-18T03:31:40.000Z

Cannot write file ... because it would overwrite input file.

typescriptのプロジェクトで開発中VSCodeでエラーメッセージが出た

Error "Cannot write file ... because it would overwrite input file."

ファイルがすでに存在しているので書き出せないとのこと

確かにコンパイルし直そうとすると同じエラーが出る

$ $(npm bin)/tsc
error TS5055: Cannot write file '..../handler.js' because it would overwrite input file.
...

原因

allowJs オプションがたっていると出てしまうもののようだ おそらくこのオプションがたっているtscには、typescriptの成果物としてのjsファイルと、ソースコードのjsファイルの区別がつかなくなってしまうため掲題のようなエラーを吐くのだろう

解決

警告になっているファイルたちを消したら警告はなくなった

$ rm -rf ./build

おそらく出力先のディレクトリと、ソースコードのディレクトリをきちんと別なものを指定するのが正しいが、VSCodeの警告を止めるだけならこれでよかった

参考

勉強の戦略――9割の「努力」をやめ、真に必要な一点に集中する
[ad] 勉強の戦略――9割の「努力」をやめ、真に必要な一点に集中する
岡 健作 (単行本)