Optional Chaining
optional chaining lets us write code where TypeScript can immediately stop running some expressions if we run into a null
or undefined
. We use the ?.
operator for optional property accesses. When we write code like:
let x = foo?.bar.baz();
this is a way of saying that when foo
is defined, foo.bar.baz()
will be computed; but when foo
is null
or undefined
, stop what we’re doing and just return undefined
.
More plainly, that code snippet is the same as writing the following:
let x = foo === null || foo === undefined ? undefined : foo.bar.baz();