Skip to content
← Back to rules

typescript/no-unsafe-type-assertion Suspicious

💭 This rule requires type information.

何を実行するか

型の絞り込みを行う不安全な型アサーションを禁止します。

なぜ問題なのか

型の絞り込みを行う型アサーションは、TypeScript の型チェックを回避し、実行時エラーを引き起こす可能性があります。一方、型の拡張を行う型アサーションは安全です。なぜなら、TypeScript が型について より少ない情報 を持っているためです。型の絞り込みに型アサーションを使用する代わりに、型ガードに依存する方が良いです。これにより、不安全な型アサーションによる潜在的な実行時エラーを回避できます。

このルールに対して 誤った コードの例:

ts
function f() {
  return Math.random() < 0.5 ? 42 : "oops";
}
const z = f() as number;

const items = [1, "2", 3, "4"];
const number = items[0] as number;

このルールに対して 正しい コードの例:

ts
function f() {
  return Math.random() < 0.5 ? 42 : "oops";
}
const z = f() as number | string | boolean;

const items = [1, "2", 3, "4"];
const number = items[0] as number | string | undefined;

使い方

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

json
{
  "rules": {
    "typescript/no-unsafe-type-assertion": "error"
  }
}
bash
oxlint --type-aware --deny typescript/no-unsafe-type-assertion

参照