Skip to content
← Back to rules

typescript/consistent-type-assertions スタイル

🛠️💡 An auto-fix and a suggestion are available for this rule for some violations.

何を行うか

TypeScript の型アサーションの使用方法を一貫性を持たせる。

なぜ悪いのか

アサーションスタイル(as と角括弧)を混在させると、コードの読解性と保守性が低下する。 一部のコードベースでは、より安全な代替手段である型注釈や satisfies の利用に伴い、型アサーションが禁止されている場合がある。

このルールの誤りとなる例(デフォルト設定:assertionStyle: "as"):

ts
const value = <Foo>bar;

このルールの正しい例(デフォルト設定:assertionStyle: "as"):

ts
const value = bar as Foo;

assertionStyle: "angle-bracket" での誤りとなる例:

ts
const value = bar as Foo;

assertionStyle: "angle-bracket" での正しい例:

ts
const value = <Foo>bar;

assertionStyle: "never" での誤りとなる例:

ts
const value = bar as Foo;

assertionStyle: "never" での正しい例:

ts
const value: Foo = bar;
const value = bar satisfies Foo;

オブジェクト/配列リテラルのアサーションが許可されない場合、型注釈または satisfies を優先すること:

ts
// 誤り(`objectLiteralTypeAssertions: "never"` のとき)
const obj = { a: 1 } as Foo;

// 正しい
const obj: Foo = { a: 1 };
const obj = { a: 1 } satisfies Foo;

設定

assertionStyle

type: "never"

使い方

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

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

参照