Skip to content
← Back to rules

typescript/consistent-type-imports スタイル

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

何をするか

型のインポートの使用方法を一貫性を持たせるように制約します。

なぜ問題なのか

型のインポートの使い方が一貫性がないと、コードが読みにくくなり、理解しにくくなります。

このルールに違反する例:

ts
import { Foo } from "Foo";
type T = Foo;

type S = import("Foo");

このルールに準拠する例:

ts
import type { Foo } from "Foo";

"prefer": "type-imports" (デフォルト) の場合の例

違反する例:

ts
import { Foo } from "foo";
let foo: Foo;

準拠する例:

ts
import type { Foo } from "foo";
let foo: Foo;

"prefer": "no-type-imports" の場合の例

違反する例:

ts
import type { Foo } from "foo";
let foo: Foo;

準拠する例:

ts
import { Foo } from "foo";
let foo: Foo;

"fixStyle": "inline-type-imports" の場合の例

型のインポートを修正する際、このオプションはインラインの type モディファイアを使用します:

ts
// 修正前
import { A, B } from "foo";
type T = A;
const b = B;

// 修正後
import { type A, B } from "foo";
type T = A;
const b = B;

"disallowTypeAnnotations": false の場合の例

false に設定すると、import() の型注釈を許可します:

ts
type T = import("foo").Bar;

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

disallowTypeAnnotations

型: boolean

デフォルト: true

型注釈内で import() を使用することを禁止します。例: type T = import('foo')

fixStyle

型: "separate-type-imports" | "inline-type-imports"

デフォルト: "separate-type-imports"

自動修正時に型インポートの追加方法を制御します。

"separate-type-imports"

import type { A } from '...' の形式で、インポートキーワードの後に type キーワードを追加します。

"inline-type-imports"

import { type A } from '...' の形式で、type キーワードをインラインに挿入します(TypeScript 4.5以降でのみ利用可能)

prefer

型: "type-imports" | "no-type-imports"

デフォルト: "type-imports"

型インポートまたは値インポートのどちらを強制するかを制御します。

"type-imports"

常に import type Foo from '...' を使用することを強制します(デコレータのメタデータ参照を除く)。

"no-type-imports"

常に import Foo from '...' を使用することを強制します。

使用方法

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

json
{
  "rules": {
    "typescript/consistent-type-imports": "error"
  }
}
bash
oxlint --deny typescript/consistent-type-imports

参照