Skip to content

Function: propsFactory()

ts
function propsFactory<PropsOptions>(
  props: PropsOptions,
  source: string,
): <Defaults>(defaults?: Defaults) => AppendDefault<PropsOptions, Defaults>;

Creates a factory function for props definitions. This is used to define props in a composable then override default values in an implementing component.

Type Parameters

Type Parameter
PropsOptions extends ComponentObjectPropsOptions<Data>

Parameters

ParameterType
propsPropsOptions
sourcestring

Returns

ts
<Defaults>(defaults?: Defaults): AppendDefault<PropsOptions, Defaults>;

Type Parameters

Type ParameterDefault type
Defaults extends PartialKeys<PropsOptions>{ }

Parameters

ParameterType
defaults?Defaults

Returns

AppendDefault<PropsOptions, Defaults>

Examples

ts
Simplified signature
(props: Props) => (defaults?: Record<keyof props, any>) => Props
ts
Usage
const makeProps = propsFactory({
  foo: String,
})

defineComponent({
  props: {
    ...makeProps({
      foo: 'a',
    }),
  },
  setup (props) {
    // would be "string | undefined", now "string" because a default has been provided
    props.foo
  },
}