ComponentConstructor
type ComponentConstructor
type ComponentConstructor<TComponent extends Component = Component> = new (...args: never[]) => TComponent;
Generic constructor type for Component classes.
This type is used to define parameters of Component.preset.
Example
export class Application extends Component {
static preset(
presets: Application.Presets,
...activities: Array<ComponentConstructor | undefined>
): Function {
// ... use preset activities here
}
// ...
}
ComponentConstructor.PresetType
type PresetType<TComponentCtor extends ComponentConstructor> = TComponentCtor extends { preset: (presets: infer TPreset) => void; } ? TPreset : any;
Inferred partial type of the argument to Component.with without bindings, for a specific component constructor.
ComponentConstructor.PresetArgType
type PresetArgType<TComponentCtor extends ComponentConstructor> = { [P in keyof PresetType<TComponentCtor>]?:PresetType<TComponentCtor>[P] | Binding.Type; } & { [P: string]: any; };
Inferred type of the argument to Component.with for a specific component constructor.
ComponentConstructor.PresetRestType
type PresetRestType<TComponentCtor extends ComponentConstructor> = TComponentCtor extends { preset: (presets:PresetType<TComponentCtor>, ...rest: infer TRest) => void; } ? TRest : never;
Inferred type of the rest arguments to Component.with for a specific component constructor.