TypeScriptで、TS2307のエラーが出たとき、TS1149のエラーも疑う
2020/04/11
累計閲覧数 9791 PV
ファイルが次のようにある場合、
main.ts
library.ts
main.ts
からlibrary.ts
を呼び出すとき、以下の後者のような呼び方をするとコンパイルエラーが出る。
// 正しい
import {} from "./library";
// 間違い
import {} from "./Library";
大文字と小文字の差によって生じるらしいが、MacやLinux環境によってはTS1149
のエラーだったり、TS2307
のエラーだったり、
若干の差異があるようだ。
TS1149はエラーの原因を的確に表しており、間違いに気が付きやすい。
厄介なのがこっちだ。TS2307
は対象のファイルが見つからない、というエラーなのだが、大文字・小文字の違いでエラーが出ていることに気がついていない間は、
微妙な違いに気がつけずに時間を費やしてしまう。
TS2307のエラーが表示された場合の確認手順は以下の通り。
library
のファイル名が確実にあることを検索する。library
で完全一致で検索する。touch library.ts
などのように作成する。
ファイル名の大文字小文字だけを変換した場合、gitに観測されないことがある。
git mv
を利用することで、ステージングに載せることが可能である。
git mv library.ts Library.ts