Skip to content

NamedMap

type NamedMap<TDescriptor extends readonly NamedModuleDescriptor[]> = {
[S in Extract<TDescriptor[number], string>]: Refkey;
} & {
[O in Extract<TDescriptor[number], {
name: string;
}> as O["name"]]: Refkey & {
static: O extends {
staticMembers: infer SM extends NamedModuleDescriptor[];
} ? NamedMap<SM> : {};
instance: O extends {
instanceMembers: infer IM extends NamedModuleDescriptor[];
} ? NamedMap<IM> : {};
};
};