"foo"?.length; // unnecessary optional chain
"foo" ?? "bar"; // unnecessary nullish coalescing
declare let obj: { prop: string } | undefined;
obj?.prop?.length; // optional chain is valid, second is unnecessary
let a = 'foo';
a ||= 'bar'; // 'a' is always truthy, assignment never occurs
a ??= 'bar'; // 'a' is never nullish, assignment never occurs
a &&= 'bar'; // 'a' is always truthy, assignment always occurs
This was the last remaining work item from #717.