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