Skip to main content

Function: composeMixins()

Call Signature​

function composeMixins<M>(...mixins): ApplyMixins<typeof MixinEmptyBase, M>;

Composes several model mixins without an explicit base model class.

An implicit empty base (Model({})) is used. Useful for bundling mixins to reuse across multiple concrete classes:

const ProductBase = composeMixins(countableMixin, producerMixin)

@model("myApp/Product")
class Product extends ExtendedModel(ProductBase, {}) {}

Type Parameters​

Type ParameterDescription
M extends readonly ModelMixin<any, any, any>[]Mixin tuple type.

Parameters​

ParameterTypeDescription
...mixinsM & ValidateMixins<typeof MixinEmptyBase, M>Mixins to apply.

Returns​

ApplyMixins<typeof MixinEmptyBase, M>

A model class with all mixin additions applied over an empty base.

Call Signature​

function composeMixins<B, M>(base, ...mixins): ApplyMixins<B, M>;

Composes several model mixins over a base model class.

Type Parameters​

Type ParameterDescription
B extends ModelClass<AnyModel>Base model class.
M extends readonly ModelMixin<any, any, any>[]Mixin tuple type.

Parameters​

ParameterTypeDescription
baseBBase model class.
...mixinsM & ValidateMixins<B, M>Mixins to apply.

Returns​

ApplyMixins<B, M>

A model class with all mixin additions applied.