@itrocks/reflect
Version:
Runtime introspection of TypeScript classes and their properties, including property type
20 lines (19 loc) • 863 B
TypeScript
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>;
}