Skip to content
← Back to rules

import/consistent-type-specifier-style スタイル

🛠️ An auto-fix is available for this rule for some violations.

何をするか

このルールは、名前付きインポートにおけるインラインの型専用マーカーの使用を強制するか、禁止するかを設定します。

なぜ悪いのか

トップレベルの import type { Foo } from 'foo' とインラインの { type Bar } が混在すると、インポートを確認する際に読者が意識の切り替えが必要になります。 一方のスタイルを強制することで、どのインポートが型であるか、どのインポートが値であるかがすぐにわかります。

デフォルトの prefer-top-level オプションでの誤ったコードの例:

typescript
import { type Foo } from "Foo";
import Foo, { type Bar } from "Foo";

デフォルトのオプションでの正しいコードの例:

typescript
import type { Foo } from "Foo";
import type Foo, { Bar } from "Foo";

prefer-inline オプションでの誤ったコードの例:

typescript
import type { Foo } from "Foo";
import type Foo, { Bar } from "Foo";

prefer-inline オプションでの正しいコードの例:

typescript
import { type Foo } from "Foo";
import Foo, { type Bar } from "Foo";

設定

このルールは以下の文字列値のいずれかを受け入れます。

"prefer-top-level"

型インポートに対して import type { Foo } from 'foo' を推奨します。

"prefer-inline"

型インポートに対して import { type Foo } from 'foo' を推奨します。

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のようにします:

json
{
  "plugins": ["import"],
  "rules": {
    "import/consistent-type-specifier-style": "error"
  }
}
bash
oxlint --deny import/consistent-type-specifier-style --import-plugin

参照