Static typing means to curse and blessing alike. They provide with TypeScript robust APIs that are initially rigid in nature. As soon as the use case deviates somewhat, there is a tendency to duplicate large parts of the source code to correspond to the typing.
But you can save yourself this effort. Using conditional types, you create dynamic APIs that are still strongly typed. Your options in programming in TypeScript expand immensely by the knowledge of these language features.
After this talk, you can read, understand and use conditional types.
You will get an introduction to the syntax and the possibilities provided by TypeScript.
Afterwards, you will get an insight into a real project that illustrates the added value in practice.