tmdb-ts
    Preparing search index...

    Type Alias AppendToResponse<K, T, Media>

    AppendToResponse: K & (
        T extends undefined
            ? object
            : T extends unknown[]
                ? (
                    "credits" extends T[number]
                        ? {
                            credits: Media extends "tvEpisode"
                                ? TvEpisodeCredit
                                : Omit<Credits, "id">;
                        }
                        : object
                ) & (
                    "videos" extends T[number] ? { videos: Omit<Videos, "id"> } : object
                ) & (
                    "images" extends T[number]
                        ? {
                            images: Omit<Media extends "person" ? PeopleImages : Images, "id">;
                        }
                        : object
                ) & (
                    "recommendations" extends T[number]
                        ? {
                            recommendations: Media extends "tvShow"
                                ? TvRecommendations
                                : Recommendations;
                        }
                        : object
                ) & (
                    "reviews" extends T[number]
                        ? { reviews: Omit<Reviews, "id"> }
                        : object
                ) & (
                    "reviews" extends T[number]
                        ? { reviews: Omit<Translations, "id"> }
                        : object
                ) & (
                    "changes" extends T[number]
                        ? {
                            changes: Changes<
                                Media extends "person"
                                    ? PersonChangeValue
                                    : (...) extends (...) ? (...) : (...),
                            >;
                        }
                        : object
                ) & (
                    "keywords" extends T[number]
                        ? { keywords: Omit<Keywords, "id"> }
                        : object
                ) & (
                    "lists" extends T[number]
                        ? { lists: Omit<MovieLists, "id"> }
                        : object
                ) & (
                    "release_dates" extends T[number]
                        ? { release_dates: Omit<ReleaseDates, "id"> }
                        : object
                ) & (
                    "alternative_titles" extends T[number]
                        ? { alternative_titles: Omit<AlternativeTitles, "id"> }
                        : object
                ) & (
                    "external_ids" extends T[number]
                        ? { external_ids: Omit<ExternalIds, "id"> }
                        : object
                ) & (
                    "translations" extends T[number]
                        ? {
                            translations: Omit<
                                Media extends "person"
                                    ? PersonTranslations
                                    : (...) extends (...) ? (...) : (...),
                                "id",
                            >;
                        }
                        : object
                ) & (
                    "watch/providers" extends T[number]
                        ? { "watch/providers": Omit<WatchProviders, "id"> }
                        : object
                ) & (
                    "aggregate_credits" extends T[number]
                        ? { aggregate_credits: Omit<AggregateCredits, "id"> }
                        : object
                ) & (
                    "episode_groups" extends T[number]
                        ? { episode_groups: Omit<EpisodeGroups, "id"> }
                        : object
                ) & (
                    "screened_theatrically" extends T[number]
                        ? { screened_theatrically: Omit<ScreenedTheatrically, "id"> }
                        : object
                ) & (
                    "similar" extends T[number]
                        ? {
                            similar: Media extends "movie"
                                ? SimilarMovies
                                : Media extends "tvShow" ? SimilarTvShows : unknown;
                        }
                        : object
                ) & (
                    "content_ratings" extends T[number]
                        ? { content_ratings: Omit<ContentRatings, "id"> }
                        : object
                ) & (
                    "movie_credits" extends T[number]
                        ? { movie_credits: Omit<PersonMovieCredit, "id"> }
                        : object
                ) & (
                    "tv_credits" extends T[number]
                        ? { tv_credits: Omit<PersonTvShowCredit, "id"> }
                        : object
                ) & (
                    "combined_credits" extends T[number]
                        ? { combined_credits: Omit<PersonCombinedCredits, "id"> }
                        : object
                ) & (
                    "tagged_images" extends T[number]
                        ? { tagged_images: TaggedImages }
                        : object
                )
                : never
    )

    A utility type that merges additional response data based on append_to_response keys. This enables type-safe access to appended data (e.g. credits, videos, images) on detail responses.

    Type Parameters

    • K

      The base response type (e.g. MovieDetails, TvShowDetails).

    • T extends AppendToResponseAllKeys[] | undefined

      The array of append_to_response keys, or undefined.

    • Media extends AppendToResponseMediaType

      The media type category for type resolution.