Advanced 15 terms

TypeScript Advanced

Advanced TypeScript type system features: generics, mapped types, conditional types, utility types, and strict mode.

  • generic /dʒəˈnerɪk/

    A type parameter written as <T> that makes a function, class, or type alias reusable across different types without sacrificing type safety.

    "Our fetch wrapper is generic: function get<T>(url: string): Promise<T> — callers specify the expected response type and get full autocomplete."
  • type parameter /taɪp pəˈræmɪtər/

    Placeholder name such as T, K, or V in a generic declaration; can be constrained with extends to limit accepted types.

    "function getProperty<T, K extends keyof T>(obj: T, key: K) ensures the key argument is a valid property name of the object type."
  • mapped type /mæpt taɪp/

    Type created by iterating over the keys of another type: { [K in keyof T]: SomeType }. Transforms every property systematically.

    "We created a Nullable<T> mapped type: { [K in keyof T]: T[K] | null } to make every property of an API response nullable."
  • conditional type /kənˈdɪʃənəl taɪp/

    Type that resolves to one of two branches based on a condition: T extends U ? X : Y. Evaluated at compile time.

    "IsArray<T> = T extends any[] ? true : false lets us branch the return type of a function based on whether the input is an array."
  • template literal type /ˈtempleɪt ˈlɪtərəl taɪp/

    A type formed from string literal combinations using template syntax: type EventName = `on${Capitalize<string>}`.

    "We use a template literal type to enforce that all event handler prop names start with 'on': type Handler = `on${string}`."
  • infer keyword /ɪnˈfɜː ˈkiːwɜːd/

    Used inside a conditional type to extract and capture a type in a new type variable: ReturnType<T> uses infer R to capture the return type.

    "type UnwrapPromise<T> = T extends Promise<infer U> ? U : T extracts the resolved type from a Promise."
  • Partial<T> /ˈpɑːʃəl/

    Built-in utility type that makes all properties of T optional; equivalent to { [K in keyof T]?: T[K] }.

    "We use Partial<UserConfig> for the update endpoint so callers only need to send the fields they want to change."
  • Required<T> /rɪˈkwaɪəd/

    Built-in utility type that makes all properties of T required, removing any ? optional modifiers.

    "After merging defaults, we cast to Required<Config> to tell TypeScript that every field is now definitely present."
  • Pick<T,K> /pɪk/

    Built-in utility type creating a new type with only the specified keys from T; useful for creating view models from domain types.

    "Pick<User, 'id' | 'name' | 'email'> creates a lightweight type for the public API response without exposing hashed passwords or internal fields."
  • Omit<T,K> /ˈɒmɪt/

    Built-in utility type creating a new type that excludes the specified keys from T; the inverse of Pick.

    "Omit<User, 'passwordHash' | 'internalId'> strips sensitive fields from the User type before serialising to JSON."
  • Record<K,V> /ˈrekɔːd/

    Built-in utility type creating an object type whose keys are of type K and values are of type V; clearer than index signatures for known key sets.

    "Record<HttpMethod, RequestHandler> enforces that our router has a handler for every HTTP method in the HttpMethod union."
  • type narrowing /taɪp ˈnærəʊɪŋ/

    TypeScript's ability to refine a union type to a more specific type within a conditional block using typeof, instanceof, or discriminant properties.

    "After if (typeof value === 'string') TypeScript narrows value to string inside the block, enabling string methods without a cast."
  • discriminated union /dɪˈskrɪmɪneɪtɪd ˈjuːnjən/

    A union of object types each sharing a common literal discriminant field; enables exhaustive type narrowing with switch or if-else.

    "Our Result type is a discriminated union: { kind: 'ok', value: T } | { kind: 'err', error: Error } — switching on kind narrows the type fully."
  • declaration merging /ˌdeklərˈeɪʃən ˈmɜːdʒɪŋ/

    TypeScript feature allowing multiple interface declarations with the same name to be merged; used to extend third-party library types.

    "We merge the Express Request interface to add a user property: declare global { namespace Express { interface Request { user: AuthUser } } }"
  • strict mode /strɪkt məʊd/

    tsconfig option "strict": true that enables all strict type-checks including noImplicitAny, strictNullChecks, and strictFunctionTypes.

    "Turning on strict mode surfaced 40 implicit any errors and 15 places where we were not handling null — fixing them before production saved us from runtime crashes."

Frequently Asked Questions

How many terms are in the TypeScript Advanced vocabulary set?

The TypeScript Advanced set has 15 terms, each with a definition, pronunciation, and an example sentence showing real-world usage.

What level is the TypeScript Advanced vocabulary set?

This set is labelled Advanced. If you find it too challenging, browse the full vocabulary list to find a set closer to your current level.

Is this vocabulary set free to study?

Yes. Every vocabulary set on CoderSlingo, including this one, is completely free — no account, sign-up, or payment required.