Trainers
Stefan Baumgartner
Schedule
07:30 - 08:30
Continental breakfast buffet with the trainers
08:30 - 10:30
We get into the nitty gritty of TypeScript’s type system and learn all about primitive types, literal types, union types, and intersection types. We also look at mapped types, index access types, and get comfortable with a couple of built-in utility types and their usage.
10:30 - 11:00
Break with coffees, teas, juices, energizers and snacks
11:00 - 12:30
In our second block we look at how generics work in TypeScript. Learn all about generic type variables, generic constraints, and generic bindings, and see how their usage differs from other programming languages that feature generics.
12:30 - 14:00
Lunch with fresh soup, salads, selections of cold and warm fish and meat dishes, dessert
14:00 - 15:30
Conditional types allow us to model the most dynamic JavaScript behaviour with just a couple of types. We see how distributive conditional types work, how we can filter types using the bottom type never, and what naked types are. We combine them with string template literal types, to open up all sorts of possibilities for user-defined code.
15:30 - 16:00
Break with coffees, teas, juices, energizers and snacks
16:00 - 17:30
We take all we learned so far and establish a type development process to make the most helpful types with the least amount of effort. We learn about concepts like low maintenance types and dynamic static typing. Last, but not least, we look into scenarios where common JavaScript techniques break in TypeScript for unknown reasons, and see how we can fix them.
Takeaways
- Type system concepts like structural typing and substitutability.
- Control flow, type narrowing and widening, and working with literal types.
- The purpose of generics and their use with conditional types
- String template literal types, variadic tuple types and advanced function type signatures
- Type development practices like dynamic static typing and low maintenance types
Learn more about Stefan at https://scriptconf.org/ .