typescript/consistent-type-assertions スタイル
何を行うか
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