Class DataParserBase<parserRule>Abstract

define a parser

Example

// define a parser which parser A to ATarget
class AParser extends DataParserBase<AParserRule> { }

Type Parameters

Hierarchy

  • DataParserBase

Constructors

  • Type Parameters

    Parameters

    • oriDataType: ConstructorType<parserRule["oriObjectType"]>

    Returns DataParserBase<parserRule>

Properties

oriObjectType: ConstructorType<parserRule["oriObjectType"]>
gettersCache: Map<DataParserBase<any>, any> = ...
settersCache: Map<DataParserBase<any>, any> = ...

Accessors

  • get propertyGetters(): { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], propertyName: string) => parserRule["targetDataType"][P]) }
  • Returns { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], propertyName: string) => parserRule["targetDataType"][P]) }

  • get propertySetters(): { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], targetValue: parserRule["targetDataType"][P], propertyName?: string, exData?: parserRule["exDataType"], callback?: (() => void)) => void) }
  • Returns { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], targetValue: parserRule["targetDataType"][P], propertyName?: string, exData?: parserRule["exDataType"], callback?: (() => void)) => void) }

Methods

  • get property value

    Returns

    property value

    Type Parameters

    • PropertyNames extends Extract<keyof parserRule["targetDataType"], string>[]

    Parameters

    • value: parserRule["oriObjectType"]

      original data

    • Rest ...propertyNames: PropertyNames

      property names,can be null

    Returns PropertyNames extends [] ? parserRule["targetDataType"] : Pick<parserRule["targetDataType"], PropertyNames[number]>

  • Type Parameters

    • T extends { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], propertyName: string) => parserRule["targetDataType"][P]) }

    Parameters

    • getterDescription: T

    Returns T

  • Type Parameters

    • T extends { [ P in string | number | symbol]: ((value: parserRule["oriObjectType"], targetValue: parserRule["targetDataType"][P], propertyName?: string, exData?: parserRule["exDataType"], callback?: (() => void)) => void) }

    Parameters

    • setterDescription: T

    Returns T

  • set property value

    Parameters

    • value: parserRule["oriObjectType"]

      original data

    • partialTargetData: Partial<parserRule["targetDataType"]>

      propertyName-propertyValue key pairs

    • Optional extras: { callback?: (() => void); exData?: parserRule["exDataType"] }

      extras data,which is helpful when we want to do something else after the property is been set

      • Optional callback?: (() => void)
          • (): void
          • Returns void

      • Optional exData?: parserRule["exDataType"]

    Returns void