Options
All
  • Public
  • Public/Protected
  • All
Menu

This class describes an entity. Entity is simply a collection of Fields. Entity also may have a parent entity, from which it inherit the fields.

Hierarchy

Index

Properties

name

name: Name = undefined

The name of the entity

parentEntity

parentEntity: EntityMeta

The parent entity

Methods

addField

  • addField<T>(field: T): T
  • Adds a field to this entity.

    Type parameters

    Parameters

    • field: T

    Returns T

forEachField

  • forEachField(func: (field: Field, name: Name) => any): void
  • Iterator for all fields of this entity (including inherited).

    Parameters

    Returns void

getField

  • Returns a field with given name (possibly inherited) or undefined if there's none.

    Parameters

    Returns Field

hasField

  • hasField(name: Name): boolean
  • Checks whether the entity has a field with given name (possibly inherited from parent entity).

    Parameters

    Returns boolean

initialize

  • initialize<T>(props?: Partial<T>): void
  • This method applies its 1st argument (if any) to the current instance using Object.assign().

    Supposed to be overridden in the subclasses to customize the instance creation process.

    Type parameters

    Parameters

    • Optional props: Partial<T>

    Returns void

Static new

  • new<T>(this: T, props?: Partial<InstanceType<T>>): InstanceType<T>
  • This is a type-safe static constructor method, accepting a single argument, with the object, corresponding to the class properties. It will generate a compilation error, if unknown property is provided.

    For example:

    class MyClass extends Base {
        prop     : string
    }
    
    const instance : MyClass = MyClass.new({ prop : 'prop', wrong : 11 })

    will produce:

    TS2345: Argument of type '{ prop: string; wrong: number; }' is not assignable to parameter of type 'Partial<MyClass>'.
    Object literal may only specify known properties, and 'wrong' does not exist in type 'Partial<MyClass>'

    The only thing this constructor does is create an instance and call the initialize method on it, forwarding the first argument. The customization of instance is supposed to be performed in that method.

    Type parameters

    Parameters

    • this: T
    • Optional props: Partial<InstanceType<T>>

    Returns InstanceType<T>

Generated using TypeDoc