ts-std-lib
Version:
A standard library for typescript
28 lines (27 loc) • 1.36 kB
TypeScript
import 'reflect-metadata';
import { Json } from './Json';
import { IJsonSerializer, jsonSerializer } from './IJsonSerializer';
import { IJsonSerializable } from './Json';
export interface JsonSerializableConstructor {
fromJSON<T extends JsonSerializable>(json: Json): T;
}
/**
* A base type to use for objects that can then be serialized to/from json using decorators
*/
export declare abstract class JsonSerializable implements IJsonSerializable {
static fromJSON<T extends JsonSerializable>(json: Json): T;
toJSON(_key?: string | number): Json;
}
/**
* A default implementation of IJsonSerializer
*/
export declare class DefaultSerializer implements IJsonSerializer<any> {
readonly [jsonSerializer] = true;
private readonly _jsonSerializableConstructor;
constructor(jsonSerializableConstructor?: JsonSerializableConstructor);
serialize(object: unknown): Json;
deserialize(json: Json): any;
}
export declare function jsonProperty<T>(name?: string, serializer?: IJsonSerializer<T> | JsonSerializableConstructor): PropertyDecorator;
export declare function jsonProperty<T>(serializer?: IJsonSerializer<T> | JsonSerializableConstructor): PropertyDecorator;
export declare function jsonParameter<T>(name?: string, serializer?: IJsonSerializer<T> | JsonSerializableConstructor): ParameterDecorator;