The type is a utility type in TypeScript that creates a new type, while removing all or elements. It lets us take existing types, and modify them so they are more suitable in certain situations. Let's look at how it works. NonNullable null undefined Custom Types This article covers custom types. To learn more about custom types, . read my guide about it here NonNullable Utility Type The utility type works a lot like other utility types, in that it can take an existing type, and modify it as you see fit. As an example, let's say we have a specific union type that accepts and as potential options: NonNullable null undefined type myType = string | number | null | undefined This example works great in one example, but there is another part of our code where we don't want to accept or . We could create a new type for that, or we could reuse , using : null undefined myType NonNullable type myType = string | number | null | undefined type noNulls = NonNullable<myType> In the above example, is now of type . noNulls string | number Also Here