# ModuleExports

Infers the exported members of a module based on its descriptor.

D - The module descriptor, which may specify a `default` export (as a string) and/or an array of named exports (`named`).

If `D` includes a `default` property of type `string`, the resulting type will include a `default` property of type `Refkey`. If `D` includes a `named` property (an array of [`NamedModuleDescriptor`](NamedModuleDescriptor.md)), the resulting type will include the mapped named exports as defined by [`NamedMap`](NamedMap.md).

```ts
type ModuleExports<D extends {
    default?: string;
    named?: NamedModuleDescriptor[];
}> = (D extends {
    default: string;
} ? {
    default: Refkey;
} : {}) & (D["named"] extends NamedModuleDescriptor[] ? NamedMap<D["named"]> : {});
```
