Interface IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>

An interface to pass in constructor (class) of an Entity as a function argument.

interface IEntityClass<
    TFields extends object,
    TID extends NonNullable<TFields[TSelectedFields]>,
    TViewerContext extends ViewerContext,
    TEntity extends
        ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>,
    TPrivacyPolicy extends
        EntityPrivacyPolicy<
            TFields,
            TID,
            TViewerContext,
            TEntity,
            TSelectedFields,
        >,
    TSelectedFields extends keyof TFields = keyof TFields,
> {
    new IEntityClass(
        constructorParam: {
            databaseFields: Readonly<TFields>;
            id: TID;
            selectedFields: Readonly<Pick<TFields, TSelectedFields>>;
            viewerContext: TViewerContext;
        },
    ): TEntity;
    defineCompanionDefinition(): EntityCompanionDefinition<
        TFields,
        TID,
        TViewerContext,
        TEntity,
        TPrivacyPolicy,
        TSelectedFields,
    >;
}

Type Parameters

Constructors

Methods