Populated
Populated<
TCollectionSlug,TPopulate> =TCollectionSlugextends keyofDocumentBySlug?{ [K in keyof DocumentBySlug[TCollectionSlug]]: K extends keyof TPopulate ? K extends string ? RelationshipTargetOf<TCollectionSlug, K> extends infer Target ? Target extends CollectionSlug ? Target extends keyof DocumentBySlug ? TPopulate[K] extends { populate: infer NestedPopulate } ? NestedPopulate extends PopulateShape<Target> ? Populated<(...), (...)>[] : (...)[(...)][] : DocumentBySlug[Target][] : DocumentBySlug[TCollectionSlug][K] : DocumentBySlug[TCollectionSlug][K] : DocumentBySlug[TCollectionSlug][K] : DocumentBySlug[TCollectionSlug][K] : DocumentBySlug[TCollectionSlug][K] }:never
Defined in: packages/core/src/api/types.ts:386
Result type of a populated query — Doc<TCollectionSlug> with each key listed in
TPopulate replaced from Id<TargetSlug>[] to Doc<TargetSlug>[].
Recurses if the populate value has a nested populate field (D12: unbounded
nesting).
Keys not in TPopulate keep their original Id[] type. Non-relationship
keys are left untouched.
Type Parameters
Section titled “Type Parameters”TCollectionSlug
Section titled “TCollectionSlug”TCollectionSlug extends CollectionSlug
TPopulate
Section titled “TPopulate”TPopulate extends PopulateShape<TCollectionSlug>