Interface ContainerReflection

interface ContainerReflection {
    flags: JSONOutput.ReflectionFlags;
    id: Models.ReflectionId;
    kind: Models.ReflectionKind;
    name: string;
    variant: keyof Models.ReflectionVariant;
    categories?: JSONOutput.ReflectionCategory[];
    children?: (
        JSONOutput.DeclarationReflection
        | JSONOutput.ReferenceReflection
    )[];
    childrenIncludingDocuments?: number[];
    comment?: JSONOutput.Comment;
    documents?: JSONOutput.DocumentReflection[];
    groups?: JSONOutput.ReflectionGroup[];
}

Hierarchy (View Summary)

Properties

Unique id of this reflection.

The kind of this reflection.

name: string

The symbol name of this reflection.

variant: keyof Models.ReflectionVariant

Discriminator representing the type of reflection represented by this object.

All children grouped by their category.

The children of this reflection. Do not add reflections to this array manually. Instead call addChild.

childrenIncludingDocuments?: number[]

The parsed documentation comment attached to this reflection.

Documents associated with this reflection.

These are not children as including them as children requires code handle both types, despite being mostly unrelated and handled separately.

Including them here in a separate array neatly handles that problem, but also introduces another one for rendering. When rendering, documents should really actually be considered part of the "children" of a reflection. For this reason, we also maintain a list of child declarations with child documents which is used when rendering.

All children grouped by their kind.