# Class JsonEntityStore

Class
Module
import { JsonEntityStore } from "@tsed/schema"
Source/packages/specs/schema/src/types/domain/JsonEntityStore.ts

# Overview

abstract class JsonEntityStore implements JsonEntityStoreOptions {
<span class="token keyword">readonly</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">;</span>

<span class="token keyword">readonly</span> propertyName<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>

<span class="token keyword">readonly</span> index<span class="token punctuation">:</span> <span class="token keyword">number</span><span class="token punctuation">;</span>

<span class="token keyword">readonly</span> descriptor<span class="token punctuation">:</span> PropertyDescriptor<span class="token punctuation">;</span>

<span class="token keyword">readonly</span> decoratorType<span class="token punctuation">:</span> <a href="/api/core/types/domain/DecoratorTypes.html"><span class="token">DecoratorTypes</span></a><span class="token punctuation">;</span>

collectionType<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>
token<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>
<span class="token keyword">readonly</span> store<span class="token punctuation">:</span> <a href="/api/core/types/domain/Store.html"><span class="token">Store</span></a><span class="token punctuation">;</span>
<span class="token keyword">readonly</span> isStore<span class="token punctuation"> = </span>true<span class="token punctuation">;</span>
<span class="token keyword">readonly</span> parent<span class="token punctuation">:</span> JsonEntityStore<span class="token punctuation">;</span>
<span class="token keyword">readonly</span> target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>

<span class="token keyword">protected</span> _type<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>

<span class="token keyword">protected</span> _schema<span class="token punctuation">:</span> <a href="/api/specs/schema/types/domain/JsonSchema.html"><span class="token">JsonSchema</span></a><span class="token punctuation">;</span>
<span class="token punctuation">[</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">]</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
<span class="token keyword">constructor</span><span class="token punctuation">(</span>options<span class="token punctuation">:</span> <a href="/api/specs/schema/types/domain/JsonEntityStoreOptions.html"><span class="token">JsonEntityStoreOptions</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>

get <span class="token function">targetName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
get <span class="token function">isCollection</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get <span class="token function">isArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get <span class="token function">discriminatorAncestor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> JsonEntityStore | undefined<span class="token punctuation">;</span>
get <span class="token function">isPrimitive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get <span class="token function">isDate</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get <span class="token function">isObject</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get <span class="token function">isClass</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>

get <span class="token function">schema</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/specs/schema/types/domain/JsonSchema.html"><span class="token">JsonSchema</span></a><span class="token punctuation">;</span>
get <span class="token function">nestedGenerics</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
set <span class="token function">nestedGenerics</span><span class="token punctuation">(</span>nestedGenerics<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">type</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt; | <span class="token keyword">any</span><span class="token punctuation">;</span>

set <span class="token function">type</span><span class="token punctuation">(</span>value<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt; | <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

get <span class="token function">computedType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
get <span class="token function">itemSchema</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/specs/schema/types/domain/JsonSchema.html"><span class="token">JsonSchema</span></a><span class="token punctuation">;</span>
get <span class="token function">parentSchema</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/specs/schema/types/domain/JsonSchema.html"><span class="token">JsonSchema</span></a><span class="token punctuation">;</span>
get <span class="token function">isDiscriminatorChild</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token keyword">from</span>&lt;T <span class="token keyword">extends</span> <a href="/api/specs/schema/types/domain/JsonClassStore.html"><span class="token">JsonClassStore</span></a><span class="token punctuation"> = </span><a href="/api/specs/schema/types/domain/JsonClassStore.html"><span class="token">JsonClassStore</span></a>&gt;<span class="token punctuation">(</span>target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token keyword">from</span>&lt;T <span class="token keyword">extends</span> <a href="/api/specs/schema/types/domain/JsonPropertyStore.html"><span class="token">JsonPropertyStore</span></a><span class="token punctuation"> = </span><a href="/api/specs/schema/types/domain/JsonPropertyStore.html"><span class="token">JsonPropertyStore</span></a>&gt;<span class="token punctuation">(</span>target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt; | <span class="token keyword">any</span><span class="token punctuation">,</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token keyword">from</span>&lt;T <span class="token keyword">extends</span> <a href="/api/specs/schema/types/domain/JsonParameterStore.html"><span class="token">JsonParameterStore</span></a><span class="token punctuation"> = </span><a href="/api/specs/schema/types/domain/JsonParameterStore.html"><span class="token">JsonParameterStore</span></a>&gt;<span class="token punctuation">(</span>target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt; | <span class="token keyword">any</span><span class="token punctuation">,</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">,</span> index<span class="token punctuation">:</span> <span class="token keyword">number</span><span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token keyword">from</span>&lt;T <span class="token keyword">extends</span> <a href="/api/specs/schema/types/domain/JsonMethodStore.html"><span class="token">JsonMethodStore</span></a><span class="token punctuation"> = </span><a href="/api/specs/schema/types/domain/JsonMethodStore.html"><span class="token">JsonMethodStore</span></a>&gt;<span class="token punctuation">(</span>target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt; | <span class="token keyword">any</span><span class="token punctuation">,</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">,</span> descriptor<span class="token punctuation">:</span> PropertyDescriptor<span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token keyword">from</span>&lt;T <span class="token keyword">extends</span> JsonEntityStore<span class="token punctuation"> = </span>JsonEntityStore&gt;<span class="token punctuation">(</span>...args<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> fromMethod&lt;T <span class="token keyword">extends</span> <a href="/api/specs/schema/types/domain/JsonMethodStore.html"><span class="token">JsonMethodStore</span></a><span class="token punctuation"> = </span><a href="/api/specs/schema/types/domain/JsonMethodStore.html"><span class="token">JsonMethodStore</span></a>&gt;<span class="token punctuation">(</span>target<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">,</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token keyword">static</span> <span class="token function">get</span><span class="token punctuation">(</span>target<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">,</span> propertyKey<span class="token punctuation">:</span> <span class="token keyword">string</span> | symbol<span class="token punctuation">,</span> descriptor?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> JsonEntityStore<span class="token punctuation">;</span>
<span class="token function">isGetterOnly</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span> | undefined<span class="token punctuation">;</span>
get&lt;T<span class="token punctuation"> = </span><span class="token keyword">any</span>&gt;<span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> defaultValue?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token function">set</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> value?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/types/domain/Store.html"><span class="token">Store</span></a><span class="token punctuation">;</span>
<span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token keyword">abstract</span> <span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">buildType</span><span class="token punctuation">(</span>type<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token function">getBestType</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>

}

# Members

readonly propertyKey: string | symbol;

Original property key decorated by the decorator


readonly propertyName: string;

Alias of the property


readonly index: number;

Parameter index


readonly descriptor: PropertyDescriptor;

Method's descriptor


readonly decoratorType: DecoratorTypes;

Decorator type used to the JsonSchemaStore.


collectionType: Type<any>;

Type of the collection (Array, Map, Set, etc...)


token: Type<any>;

readonly store: Store;

readonly isStore = true;

readonly parent: JsonEntityStore;

readonly target: Type<any>;

protected _type: Type<any>;

protected _schema: JsonSchema;

Ref to JsonSchema


[key: string]: any;

get targetName(): string;

Return the class name of the entity.


get isCollection(): boolean;

get isArray(): boolean;

get discriminatorAncestor(): JsonEntityStore | undefined;

get isPrimitive(): boolean;

get isDate(): boolean;

get isObject(): boolean;

get isClass(): boolean;

get schema(): JsonSchema;

Return the JsonSchema


get nestedGenerics(): Type<any>[][];

set nestedGenerics(nestedGenerics: Type<any>[][]);

get type(): Type<any> | any;

set type(value: Type<any> | any);

Get original type without transformation


get computedType(): any;

Return the itemSchema computed type. if the type is a function used for recursive model, the function will be called to get the right type.


get itemSchema(): JsonSchema;

get parentSchema(): JsonSchema;

get isDiscriminatorChild(): boolean;

static from<T extends JsonClassStore = JsonClassStore>(target: Type<any>): T;

static from<T extends JsonPropertyStore = JsonPropertyStore>(target: Type<any> | any, propertyKey: string | symbol): T;

static from<T extends JsonParameterStore = JsonParameterStore>(target: Type<any> | any, propertyKey: string | symbol, index: number): T;

static from<T extends JsonMethodStore = JsonMethodStore>(target: Type<any> | any, propertyKey: string | symbol, descriptor: PropertyDescriptor): T;

static from<T extends JsonEntityStore = JsonEntityStore>(...args: any[]): T;

static fromMethod<T extends JsonMethodStore = JsonMethodStore>(target: any, propertyKey: string | symbol): T;

static get(target: Type<any>, propertyKey: string | symbol, descriptor?: any): JsonEntityStore;

isGetterOnly(): boolean | undefined;

get<T = any>(key: string, defaultValue?: any): T;

set(key: string, value?: any): Store;

toString(): string;

protected abstract build(): void;

protected buildType(type: any): void;

getBestType(): any;