no-non-null-assertion
!
後置演算子を使用した非nullアサーションを禁止します。
🔒
拡張 "plugin:@typescript-eslint/strict"
を ESLint設定 で有効にすると、このルールが有効になります。
💡
このルールによって報告される一部の問題は、エディタの 提案.
によって手動で修正できます。TypeScriptの!
非nullアサーション演算子は、式がnullでもundefinedでもないことを型システムにアサートします。アサーションを使用して型システムに新しい情報を伝えることは、多くの場合、コードが完全に型安全ではない兆候です。一般的に、TypeScriptが値がnullの可能性があるかどうかを理解するようにプログラムロジックを構成する方が優れています。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-non-null-assertion": "error"
}
};
Playgroundでこのルールを試してみてください ↗
例
- ❌ 正しくない
- ✅ 正しい
interface Example {
property?: string;
}
declare const example: Example;
const includesBaz = example.property!.includes('baz');
Playgroundで開くinterface Example {
property?: string;
}
declare const example: Example;
const includesBaz = example.property?.includes('baz') ?? false;
Playgroundで開くオプション
このルールは設定できません。
使用しない場合
プロジェクトの型がまだ特定の値がnullの可能性があるかどうかを完全に記述していない場合(例:strictNullChecks
への移行中など)、このルールによって多くの誤検知が発生する可能性があります。このルールを完全に無効にする代わりに、ESLintの無効化コメントをそれらの特定の状況で使用することを検討してください。