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で開くfoo?.bar;
foo?.bar();
Playgroundで開くオプション
このルールは設定できません。
使用しない場合
プロジェクトの型が特定の値がnullableかどうかをまだ完全に記述していない場合(strictNullChecks
に移行中の場合など)、このルールは多くの誤検出を引き起こす可能性があります。このルールを完全に無効にする代わりに、そのような特定の状況に対してESLintの無効化コメントを使用することを検討してください。