tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
28 lines (27 loc) • 1.1 kB
TypeScript
import 'reflect-metadata';
import { ParamPropMetadata } from '../metadatas/index';
import { MetadataAdapter, MetadataExtends } from './DecoratorFactory';
import { Token } from '../../types';
export declare type PropParamDecorator = (target: Object, propertyKey: string | symbol, parameterIndex?: number) => void;
/**
* Parameter and Property decorator.
*
* @export
* @interface IParamPropDecorator
*/
export interface IParamPropDecorator<T extends ParamPropMetadata> {
(provider: Token<any>): PropParamDecorator;
(metadata?: T): PropParamDecorator;
(target: object, propertyKey: string | symbol, parameterIndex?: number): void;
}
/**
* create parameter or property decorator
*
* @export
* @template T
* @param {string} name
* @param {MetadataAdapter} [adapter] metadata adapter
* @param {MetadataExtends<T>} [metadataExtends] add extents for metadata.
* @returns {IParamPropDecorator<T>}
*/
export declare function createParamPropDecorator<T extends ParamPropMetadata>(name: string, adapter?: MetadataAdapter, metadataExtends?: MetadataExtends<T>): IParamPropDecorator<T>;