tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
26 lines (25 loc) • 893 B
TypeScript
import { PropertyMetadata } from '../metadatas/index';
import { MetadataAdapter, MetadataExtends } from './DecoratorFactory';
import { Token } from '../../types';
/**
* property decorator.
*
* @export
* @interface IPropertyDecorator
*/
export interface IPropertyDecorator<T extends PropertyMetadata> {
(provider: Token<any>): PropertyDecorator;
(metadata?: T): PropertyDecorator;
(target: object, propertyKey: string | symbol): void;
}
/**
* create property decorator.
*
* @export
* @template T metadata type.
* @param {string} name decorator name.
* @param {MetadataAdapter} [adapter] metadata adapter
* @param {MetadataExtends<T>} [metadataExtends] add extents for metadata.
* @returns
*/
export declare function createPropDecorator<T extends PropertyMetadata>(name: string, adapter?: MetadataAdapter, metadataExtends?: MetadataExtends<T>): IPropertyDecorator<T>;