@typescript-package/map
Version:
A lightweight TypeScript library for enhanced `map` management.
39 lines (38 loc) • 1.88 kB
TypeScript
import { Data, DataCore, DataConstructorInput } from '@typescript-package/data';
import { CoreMap } from './core-map.abstract';
/**
* @description The `DataMap` is a concrete class that extends `CoreMap` and encapsulates its data within a `DataCore` store, providing additional data management capabilities.
* @export
* @class DataMap
* @template Key
* @template Value
* @template {DataCore<Map<Key, Value>>} [DataType=Data<Map<Key, Value>>]
* @extends {CoreMap<Key, Value, Map<Key, Value>, DataType>}
*/
export declare class DataMap<Key, Value, DataType extends DataCore<Map<Key, Value>> = Data<Map<Key, Value>>> extends CoreMap<Key, Value, Map<Key, Value>, DataType> {
/**
* @description
* @public
* @static
* @template {PropertyKey} Key
* @template Value
* @template {DataCore<Map<Key, Value>>} [DataType=Data<Map<Key, Value>>]
* @param {Record<Key, Value>} obj
* @param {?DataConstructorInput<Map<Key, Value>, DataType>} [data]
* @returns {DataMap<Key, Value, DataType>}
*/
static fromObject<Key extends PropertyKey, Value, DataType extends DataCore<Map<Key, Value>> = Data<Map<Key, Value>>>(obj: Record<Key, Value>, data?: DataConstructorInput<Map<Key, Value>, DataType>): DataMap<Key, Value, DataType>;
/**
* @description Returns the `string` tag representation of the `DataMap` class when used in `Object.prototype.toString.call(instance)`.
* @public
* @readonly
*/
get [Symbol.toStringTag](): string;
/**
* Creates an instance of `DataMap`.
* @constructor
* @param {?[Key, Value][]} [entries] Initial value for `Map`.
* @param {?DataConstructorInput<Map<Key, Value>, DataType>} [data] The data store of `DataType` for `Map` value, also with params.
*/
constructor(entries?: [Key, Value][], data?: DataConstructorInput<Map<Key, Value>, DataType>);
}