Simplifying Code with TypeScript’s Optional Chaining and Nullish Coalescing
TypeScript 3.7 introduced two powerful features that simplify the way we handle null and undefined values in our code: optional chaining and nullish coalescing. In this article, we’ll explore how these features can help us write more readable and maintainable code.
Understanding Null and Undefined in TypeScript
In TypeScript, null and undefined are two special types that represent the absence of a value. By default, TypeScript considers null and undefined as valid values for any type. However, when we enable the strictNullChecks
flag, TypeScript becomes more strict about null and undefined values, and we need to explicitly check for them in our code.
The Problem with Explicit Checking
Before the introduction of optional chaining and nullish coalescing, we had to use explicit checks to handle null and undefined values. This approach led to complex and cumbersome code, making it difficult to read and maintain.
Optional Chaining to the Rescue
Optional chaining allows us to stop running an expression if a part of it evaluates to null or undefined. We can use the ?.
operator to access properties or call methods on an object that may be null or undefined. This feature simplifies our code and makes it more readable.
Using Optional Chaining
Here are a few examples of how we can use optional chaining:
-
Optional Property Access: We can use the
?.
operator to access properties on an object that may be null or undefined.typescript
const person = { name: 'John', address: { street: '123 Main St' } };
console.log(person.address?.street); // Output: "123 Main St"
-
Optional Call: We can use the
?.
operator to call methods on an object that may be null or undefined.typescript
const person = { name: 'John', getAddress: () => ({ street: '123 Main St' }) };
console.log(person.getAddress?.().street); // Output: "123 Main St"
-
Optional Element Access: We can use the
?.
operator to access elements in an array that may be null or undefined.typescript
const numbers = [1, 2, 3];
console.log(numbers?.[0]); // Output: 1
Nullish Coalescing
Nullish coalescing allows us to specify a default value to use when an expression evaluates to null or undefined. We can use the ??
operator to provide a default value.
typescript
const name = null;
const fullName = name ?? 'Unknown';
console.log(fullName); // Output: "Unknown"
Conclusion
Optional chaining and nullish coalescing are two powerful features in TypeScript that simplify the way we handle null and undefined values in our code. By using these features, we can write more readable and maintainable code, and make our lives as developers easier. Remember to always enable the strictNullChecks
flag to get the most out of these features.