UNPKG

@itrocks/reflect

Version:

Runtime introspection of TypeScript classes and their properties, including property type

20 lines (19 loc) 863 B
import 'reflect-metadata'; import { Type } from '@itrocks/class-type'; import { PropertyDefaults } from '@itrocks/property-default'; import { PropertyTypes } from '@itrocks/property-type'; import { ReflectProperty } from './property'; export declare class ReflectClass<T extends object = object> { readonly name: string; readonly object: T | undefined; readonly type: Type<T>; constructor(object: T | Type<T>); inheritPropertyDefaults(propertyDefaults: PropertyDefaults<T>): void; inheritPropertyTypes(propertyTypes: PropertyTypes<T>): void; get parent(): ReflectClass | null; get properties(): ReflectProperty<T, keyof T>[]; get property(): { [K in keyof T]: ReflectProperty<T, K>; }; get propertyDefaults(): Partial<Pick<T, keyof T>>; get propertyNames(): Array<keyof T>; get propertyTypes(): PropertyTypes<T>; }