With a lot of the basics out of the way let's explore some advanced typing concepts now some advanced
concepts typescript offers to you that can become handy in certain situations.
You might be facing in the projects you're working on in this module we'll have a look at a couple of
interesting concepts among them intersection types.
What that is and why it might be useful.
Type guards.
What we can do with those discriminated unions fancy term for a quite interesting topic.
We'll also have a look at type.
A useful feature for telling typescript about the type of something.
In cases where typescript is not able to find out which type something has on its own and we'll have
a look at function overload it's a pretty neat feature that allows us to write more flexible functions
with better typescript support than we might otherwise get it.