< Return to index

eslintの​import/extensionsだと​type-importを​処理できないっぽい

typescriptでunknownなものをensureするライブラリでfabian-hiller/valibotがある。

これがdenoでも動くので、たまに使っているのだが、拡張子なしのimportをたまに残したままリリースするので、壊れる問題がある。

eslintでなんとかしようとしたけど無理だったので調査メモを残す。

  • eslintのimport/extensionsの設定はすでにある
    • https://github.com/fabian-hiller/valibot/blob/main/library/.eslintrc.cjs#L17
  • このeslintはCIで通ってる
    • https://github.com/fabian-hiller/valibot/actions/runs/7643117820/job/20824388394

このimport/extensionsの設定は問題なかった(手元で小さいprojectを作ってやってみたが、エラーが出た)

調べてみると、どうやらtypeのspecifierがついたimport | exportのときだけ、拡張子のruleを無視しているようだった。

  • https://github.com/import-js/eslint-plugin-import/blob/7a21f7e10f18c04473faadca94928af6b8e28009/src/rules/extensions.js#L171

typescriptのresolveの責務はeslint-import-resolver-typescriptが持つとのこと: https://github.com/import-js/eslint-plugin-import/pull/2270

ref: https://github.com/import-js/eslint-plugin-import/issues/2530

編集を提案