@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
32 lines • 1.52 kB
TypeScript
import { PropertyExtensionOptions } from './property-extension-options';
import { PropertyMetadata } from './property-metadata';
/**
* Property extension metadata used by plugins to provide additional features for property metadata
* using custom keys. Descendant classes are just wrappers to get convenient access to custom value map.
*
* @type {PropertyExtensionMetadata<TDeclaringObject, TObject, TPropertyExtensionOptions>}
*/
export declare abstract class PropertyExtensionMetadata<TDeclaringObject, TObject, TPropertyExtensionOptions extends PropertyExtensionOptions> {
/**
* Property metadata which we extend.
*
* @type {PropertyMetadata<TDeclaringObject, TObject>}
*/
readonly propertyMetadata: PropertyMetadata<TDeclaringObject, TObject>;
/**
* Constructor.
*
* @param {PropertyMetadata<TDeclaringObject, TObject>} propertyMetadata Property metadata which we extend.
* @param {TPropertyExtensionOptions} propertyExtensionOptions Property extension options.
*/
constructor(propertyMetadata: PropertyMetadata<TDeclaringObject, TObject>, propertyExtensionOptions: TPropertyExtensionOptions);
/**
* Configures property extension.
*
* @param {TPropertyExtensionOptions} propertyExtensionOptions Property extension options.
*
* @returns {this} Property extension metadata.
*/
abstract configure(propertyExtensionOptions: TPropertyExtensionOptions): this;
}
//# sourceMappingURL=property-extension-metadata.d.ts.map