UNPKG

node-web-mvc

Version:
43 lines (42 loc) 1.14 kB
/** * @module BeanDefinition * @description bean定义 */ import { ClazzType } from '../../interface/declare'; export type ScopeType = 'prototype' | 'singleton' | 'request'; export interface BeanTypeClazz { new (): any; } export default class BeanDefinition { private beanType; /** * 对应的函数 */ readonly method: Function; readonly methodClazz: ClazzType; /** * 当前bean作用域类型 */ readonly scope: ScopeType; /** * 当前类所在的文件 */ readonly path: string; /** * 对应的类 */ get clazz(): ClazzType; static toBeanName(name: string | Function): string; /** * 构造一个bean定义 * @param clazz bean构造函数 * @param scope 作用域 */ constructor(clazz: Function, method: Function, scope: ScopeType); /** * 如果是函数创建bean,由于typescript在函数没有显示指定返回类型时,无法获取返回值类型 * 为了补全clazz 在创建实例后会根据实例类设置clazz类型 * @param clazz */ fallbackBeanType(clazz: ClazzType): void; }