Conditional Types

Types that depend on conditions using extends.