本文へスキップ

no-non-null-asserted-optional-chain

オプションチェーン式の後での非nullアサーションを禁止します。

拡張 "plugin:@typescript-eslint/recommended" ESLint設定で 有効にすると、このルールが有効になります。

💡

このルールによって報告される問題の一部は、エディターの 提案によって手動で修正できます。.

?. オプションチェーン式は、オブジェクトがnullまたはundefinedの場合にundefinedを返します。?. オプションチェーン式の結果を非nullableであるとアサートするために! 非nullアサーションを使用することは、おそらく間違っています。

ほとんどの場合、オブジェクトはnullableではなく、プロパティルックアップに?.は必要なかったか、!が間違っていて、型安全性の穴を招いています。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-non-null-asserted-optional-chain": "error"
}
};

このルールをPlaygroundでお試しください ↗

foo?.bar!;
foo?.bar()!;
Playgroundで開く

オプション

このルールは設定できません。

使用しない場合

プロジェクトの型が特定の値がnullableかどうかをまだ完全に記述していない場合(strictNullChecksに移行中の場合など)、このルールは多くの誤検出を引き起こす可能性があります。このルールを完全に無効にする代わりに、そのような特定の状況に対してESLintの無効化コメントを使用することを検討してください。

さらに読む

リソース