The point of declaring an optional property or parameter is to make explicit the fact that it might contain no valid value, i.e. null
or undefined. Using a non-null assertion (the !. operator) will lead to a runtime error if the optional does contain
null or undefined. Even if the value is tested first, it’s still considered a bad practice to use a non-null assertion.
Noncompliant code example
function doTheThing(foo?: Foo) {
  let s = foo!.bar;  // Noncompliant
}
Compliant solution
function doTheThing(foo?: Foo) {
  if (foo) {
    let s = foo.bar;
  }
}