Skip to content
Switch branches/tags
Go to file
* chore(website): generate rule docs options automatically

* Apply suggestions from code review

Co-authored-by: Joshua Chen <>

* First round of changes

* Simplify Prettier types

* Progress on using defs

* Progress, through the letter 'd' for rules

* Through explicit-module-boundary-types

* rip, ban-types defaults

* Cleaner separation for adding headers

* ...I meant headings

* Finished specifically base rule extensions

* Fix unit test, and enable debug cypress logging

* Fix deprecation notices, and ci.yml env indent

* Fix up lang and <sup>

* No, not sup

* Removed bunch more options docs cruft

* naming-convention, I give up

* Aha, a missing lint rule

* member-ordering, I give up on you too

* Several more docs automations

* Fixed options index

* Also above Related To

* Aha, jsx working

* Thanks lint - correct no-inferrable-types headings

* Update packages/eslint-plugin/src/rules/no-implicit-any-catch.ts

Co-authored-by: Brad Zacher <>

* Fix explicit-function-return-type

Co-authored-by: Joshua Chen <>
Co-authored-by: Brad Zacher <>
7 contributors

Users who have contributed to this file

@JoshuaKGoldberg @bradzacher @armano2 @Josh-Cena @rhysd @jp7837 @JamesHenry
Disallow non-null assertions using the `!` postfix operator.

🛑 This file is source code, not the primary documentation location! 🛑

See for documentation.

Rule Details

Using non-null assertions cancels the benefits of the strict null-checking mode.

Examples of code for this rule:


interface Foo {
  bar?: string;

const foo: Foo = getFoo();
const includesBaz: boolean =!.includes('baz');


interface Foo {
  bar?: string;

const foo: Foo = getFoo();
const includesBaz: boolean ='baz') ?? false;

When Not To Use It

If you don't care about strict null-checking, then you will not need this rule.