Interface KosCompanionComposition<TParent>

Interface for models using

Kos Companion

in composition mode. Use TypeScript interface merging to add companion capabilities to your model class.

Example

interface ServiceCompanionModelImpl extends KosCompanionComposition<ServiceModel> {}

@kosCompanion({ mode: 'composition' })
class ServiceCompanionModelImpl implements IKosDataModel {
// Only getCompanionParent() is available
get serviceInfo() {
const parent = this.getCompanionParent();
return `Service: ${parent.serviceName}`;
}
}
interface KosCompanionComposition<TParent> {
    getCompanionParent(): TParent;
}

Type Parameters

  • TParent extends IKosDataModel = IKosDataModel

Hierarchy (view full)

Methods

  • Gets the companion's parent model instance. Available in both decorator and composition modes. Provides access to the model this companion extends.

    Returns TParent

    The parent model instance that this companion enhances