@cashfarm/plow
Version:
Library for validating input data and parameters
18 lines (17 loc) • 561 B
TypeScript
import { Guid } from '@cashfarm/lang';
import { IEntity, Entity } from './entity';
import { IDomainEvent } from './domainEvent';
import { Identity } from './identity';
export interface IAggregateRoot<TId extends Identity<any> | Guid> extends IEntity<TId> {
readonly id: TId;
}
/**
* Base implementation of an aggregate root.
*
* @export
* @class AggregateRoot
* @template TId
*/
export declare abstract class AggregateRoot<TId extends Identity<any> | Guid> extends Entity<TId> implements IAggregateRoot<TId> {
protected _events: IDomainEvent[];
}