In this talk, Josh Goldberg explores a few useful advanced TypeScript language features, including type narrowing, discriminated unions, keyofs, conditional types, mapped types, and (as of the next TypeScript version) recursive and template literal types.
Josh Goldberg