# NamedMap

```ts
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> : {};
    };
};
```
