Biomeのimport typeフォーマットを無効にする
Biomeで自動import type変換を無効にする3つの方法
Biome ↗を使用している際、リンターが通常のインポートを自動的にimport typeに変換する状況に遭遇することがあります。この機能は最適化に役立ちますが、既存のインポート構文を維持したい場合もあります。このガイドでは、この動作を無効にする3つの方法を紹介します。
問題#
BiomeにはuseImportTypeルールがあり、型のみを含むインポートを自動的にimport typeに変換します:
// Biomeフォーマット前
import { Icons } from '../../libs/icons';
// Biomeフォーマット後
import type { Icons } from '../../libs/icons';typescriptこれは以下の場合に問題になることがあります:
- 通常のインポート構文を一貫して維持したい
- インポートにランタイム値も含まれている(型だけではない)
- ESLintから移行中でコードスタイルを維持したい
解決策#
方法1:ルールをグローバルに無効にする#
最も簡単な方法は、biome.jsonファイルでuseImportTypeルールを無効にすることです:
{
"linter": {
"enabled": true,
"rules": {
"style": {
"useImportType": "off"
}
}
}
}json[!TIP]
biome.jsonを変更した後、変更を有効にするためにIDEまたはBiome拡張機能を再起動することを忘れないでください。
方法2:特定のファイルで無効にする#
特定のファイルまたは行のみで無効にする場合は、抑制コメントを使用します:
// biome-ignore lint/style/useImportType: 通常のインポート構文を維持
import { Icons } from '../../libs/icons';typescriptまたは、ファイルの先頭にコメントを配置してファイル全体に適用します:
// biome-ignore-file lint/style/useImportType
import { Icons } from '../../libs/icons';
import { OtherType } from './other';typescript方法3:すべてのインポート整理を無効にする#
Biomeがフォーマット中に型インポートを移動、ソート、再構成している場合、organizeImports機能を完全に無効にすることができます:
{
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": {
"enabled": false
}
}
}
}
}json[!WARNING] これは型インポートだけでなく、すべてのインポート整理機能を無効にします。使用する前に慎重に検討してください。
各方法の使用タイミング#
| 方法 | 使用タイミング | 利点 | 欠点 |
|---|---|---|---|
| グローバル | チームが通常のインポートを一貫して維持したい | プロジェクト全体に適用、管理が簡単 | import typeの最適化メリットが失われる |
| 特定ファイル | 数ファイルのみ例外が必要 | 柔軟、他のコードに影響しない | 手動でコメント追加が必要 |
| organizeImports無効化 | インポート整理を完全に制御したい | すべてのインポート自動化を無効化 | 多くの便利な機能が失われる |
実用的な例#
型インポートを使用するAstroコンポーネントがあるとします:
---
import type { Icons } from '../../libs/icons';
interface Props {
name: keyof typeof Icons;
}
---astrouseImportTypeを無効にした後、次のように書くことができます:
---
import { Icons } from '../../libs/icons';
interface Props {
name: keyof typeof Icons;
}
---astroBiomeはこれを自動的にimport typeに戻しません。