Step 3 / Select topic TypeScript Types Medium

What this bank covers

  • infer in an array pattern
  • Multiple infer sites in covariant positions
  • infer with tuple rest patterns
  • Recursive conditional type with infer
  • Return-type inference and the false branch
  • infer inside a template literal type
  • Adding `?` in a mapped type
  • Homomorphic mapped types copy `readonly`
  • Filtering keys by mapping them to `never`
  • Mapping over tuples and arrays
  • Transforming the value type in a mapped type
  • Renaming keys without changing value types
  • Adding the `readonly` modifier
  • `keyof` of a key-filtered mapped type
  • Removing modifiers with `-readonly`
  • Key remapping plus the `-?` modifier
  • Template literals distribute over unions
  • Capitalize inside a template literal type
  • Matching a `${string}` placeholder
  • infer in a template literal pattern
  • Key remapping with a template literal
  • Cross product of two union placeholders
  • Two infer placeholders split at the first separator
  • Template literal types constrain exact string shapes
  • Capitalize inside a template literal union
  • Recursive inference with template literal patterns
  • Naked type parameter distributes
  • Tuple wrapping blocks distribution
  • never is the empty union
  • Filtering a union by distribution
  • infer inside a distributive conditional
  • Distributed object union as an annotation
  • never with a non-distributive conditional
  • Both branches can appear
  • Non-distributive check picks one branch
  • true | false collapses to boolean
  • Array covariance
  • Downcasting an array
  • Return type covariance
  • Method parameter bivariance
  • Property covariance
  • Readonly collections and assignability
  • Array to tuple assignability
  • Inference picks a common supertype
  • Parameter arity in assignability
  • Supertype values in subtype positions
  • Overload resolution return type
  • satisfies keeps the inferred type
  • satisfies and excess properties
  • satisfies is not a cast
  • First matching overload wins
  • Union arguments and overloads
  • Implementation must cover every overload
  • satisfies supplies a contextual type
  • as const combined with satisfies
  • Arity in overload resolution
  • Distributing a conditional type over a discriminated union
  • Indexed access on a boolean discriminant
  • Excluding every member of a discriminated union
  • Selecting one member with Extract, then indexing it
  • Only shared properties are readable before narrowing
  • Object literals checked against a discriminated union
  • Exhaustiveness checking with never
  • Narrowing a union with the in operator
  • Comparing a discriminant to a value outside the union
  • Narrowing removes the other members' properties
  • Indexed access through a tuple constraint
  • Structural constraint on a shape
  • keyof constraint with indexed access return
  • Constraint versus default type argument
  • Literal inference under a primitive constraint
  • The object constraint and strict null checks
  • Inferred return type from an indexed access
  • Readonly array as an upper bound
  • Returning a type parameter through its constraint
  • infer inside a constrained conditional type
  • Recursive conditional flattening
  • Recursive dotted-path indexed access
  • Recursive tuple accumulation
  • Recursive JSON union
  • Self-referencing object type
  • Indexed access through an index signature
  • Indexed access with a union key
  • Recursive template literal join
  • Recursive readonly mapped type
  • Illegal direct self-reference
  • Template literal inference is shortest-match
  • Multiple inference sites for one infer variable
  • Blocking distribution to detect never
  • Conditional types applied to any
  • Assigning to a filtered union type
  • Inferring the last tuple element
  • infer with an extends constraint
  • Multiple infer candidates in covariant positions
  • infer candidates in contravariant positions
  • Where `infer` is allowed
  • Branch order in a nested conditional type
  • Comparing two deferred conditional types