Making Type Properties Required in TypeScript
The Required
type helper serves as an inverse to Partial
.
Where Partial sets all elements as optional, Required makes all of the elements in the type required.
Here's an example type Coordinates
where both x
and y
are optionally numbers:
type Coordinates = { x?: number; y?: n
Transcript
00:00 The opposite type helper to partial is required. So instead of making a partial of a type, this makes all of the elements required. Super useful. So coordinates here, we can see that X and Y are both number or undefined and required after being applied to it, turns them into X number and Y number. So both required. And that's really, really nice.
00:21 You notice that this only works like one level deep. So if we have like A and B here where A is required, but B inside it is not required, you'll notice that B is still not required on there. So if you want to make like a deep required, then you'll have to look at a type helper library like Typefest to help you out.
00:40 But having them just on the top level makes it a bit more predictable and is still extremely useful in a bunch of situations.