UNPKG

@wshcmx/types

Version:

<h1 align="center">WT Types</h1> <div align="center"> Typescript типы для WebSoft HCM.

75 lines (66 loc) 2.71 kB
/** * Конструктор объекта javascript. * * Создает новый объект. * * По умолчанию для объекта определен атрибуты и методы: * - {@link HasProperty} * - {@link AddProperty} * - {@link SetProperty} * - {@link GetProperty} * - {@link GetOptProperty} */ interface Object { [key: string | number]: unknown; /** * Выдает true, если атрубут с заданным наименованием существует, и false - если не существует. * @param key - Наименование атрибута объекта. * @see {@link GetOptProperty} * @see {@link GetOptProperty} * @see {@link SetProperty}. */ HasProperty(key: string | number): boolean; /** * Добавляет в объект новый атрибут, и присваивает ему значение. * @param {string} key - Наименование атрибута. * @param name - Значение атрибута. */ AddProperty(key: string | number, name: unknown): void; /** * Возвращает значение атрибута объекта. Если атрубут отсутствует, выдает undefined. * @param {string} key - Наименование атрибута объекта. * @param {unknown} [defaultValue] - Значение по умолчанию, возращаемое в случае отсутствия атрибута. */ GetOptProperty<O, K extends string, D = undefined>( this: O, key: K, defaultValue?: D ): K extends keyof O ? O[K] : D; /** * Выдает значение атрибута объекта. Если атрибут отсутствует, выдает ошибку. * @param {string} key - Наименование атрибута объекта. * @example AppConfig.GetProperty("alt-app-name"); * @throws {Error} * @see {@link GetOptProperty} * @see {@link SetProperty} */ GetProperty<O, K extends string>( this: O, key: K ): K extends keyof O ? O[K] : never; /** * Устанавливает значение атрибута объекта. * Если атрубут отсутствует, добавляет его. * @param key - Наименование атрибута объекта. * @param value - Значение атрибута объекта. * @see {@link GetOptProperty} * @see {@link SetProperty} */ SetProperty<T>(key: string | number, value: T): void; } interface ObjectConstructor { new(value?: unknown): Object; (value?: unknown): Object; (): Object; } declare const Object: ObjectConstructor;