Function: propsAndEmitsFactory()
ts
function propsAndEmitsFactory<P, E>(
props: P,
emits: E,
source: string,
): {
emits: EmitFunctions<E>;
makeProps: PropFactory<{
[KeyType in string | number | symbol]: ({
[Key in string | number | symbol as Key extends keyof PickIndexSignature<
EmitHandlerProps<E>
>
? never
: Key]: PickIndexSignature<P>[Key];
} & PickIndexSignature<EmitHandlerProps<E>> & {
[Key in
| string
| number
| symbol as Key extends keyof OmitIndexSignature<EmitHandlerProps<E>>
? never
: Key]: OmitIndexSignature<P>[Key];
} & OmitIndexSignature<EmitHandlerProps<E>>)[KeyType];
}>;
};Factory that combines props and emits definitions into a unified system. Automatically adds handler props (onX) for each emit, supporting both camelCase and kebab-case.
Type Parameters
| Type Parameter | Description |
|---|---|
P extends ComponentObjectPropsOptions<Data> | The props options type |
E extends EmitValidators | The emits validators type |
Parameters
| Parameter | Type | Description |
|---|---|---|
props | P | The props definitions |
emits | E | The emits validators |
source | string | A string identifier for debugging purposes |
Returns
ts
{
emits: EmitFunctions<E>;
makeProps: PropFactory<{
[KeyType in string | number | symbol]: ({
[Key in string | number | symbol as Key extends keyof PickIndexSignature<
EmitHandlerProps<E>
>
? never
: Key]: PickIndexSignature<P>[Key];
} & PickIndexSignature<EmitHandlerProps<E>> & {
[Key in
| string
| number
| symbol as Key extends keyof OmitIndexSignature<EmitHandlerProps<E>>
? never
: Key]: OmitIndexSignature<P>[Key];
} & OmitIndexSignature<EmitHandlerProps<E>>)[KeyType];
}>;
}An object with makeProps factory and emits functions
| Name | Type |
|---|---|
emits | EmitFunctions<E> |
makeProps | PropFactory<{ [KeyType in string | number | symbol]: ({ [Key in string | number | symbol as Key extends keyof PickIndexSignature<EmitHandlerProps<E>> ? never : Key]: PickIndexSignature<P>[Key] } & PickIndexSignature<EmitHandlerProps<E>> & { [Key in string | number | symbol as Key extends keyof OmitIndexSignature<EmitHandlerProps<E>> ? never : Key]: OmitIndexSignature<P>[Key] } & OmitIndexSignature<EmitHandlerProps<E>>)[KeyType] }> |