Type Guards
Type guards allow you to narrow down the type of an object within a certain scope. This can be done using typeof
, instanceof
, or even user-defined type guards.
if (typeof someVariable === 'string') {
// In this block, someVariable is treated as a string
}
Exercise
Define a function that takes a union type of number
or string
as an argument. If it's a number, return its square. If it's a string, return its length.