UNPKG

@boristype/types

Version:

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

77 lines (66 loc) 4.58 kB
interface XmMultiElem<T> extends XmElem<T> { [index: number]: XmlElem<T>; /** * Возвращает количество дочерних элементов. */ ChildNum: number; /** * Добавляет дочерний элемент и возвращает указатель на него. * Если текущий элемент создан по форме, то он должен быть простым массивом. * При этом аргументы для вызова функции не требуются. * Если текущий элемент является динамическим (то есть построенным без формы), * то добавляется дочерний динамический элемент с именем и типом, указанных в качестве аргументов. * @param {string} name - Имя дочернего элемента. * @param {string} type - Тип дочернего элемента. * @returns {XmlElem<T>} */ Add(name?: string, type?: string): XmlElem<T>; /** * Проверяет существует ли соответствующий множественный элемент с заданным значением. * @param {K} value - Заданное значение. */ ByValueExists<K>(value: K): boolean; /** * @deprecated * Удаляет все соответствующие множественные элементы. */ DeleteAll(): void; /** * Удаляет соответствующий множественный элемент с заданным значением. * Если таких элементов несколько, удаляет первый. * @throws {@link Error} В случае отсутствия таких элементов возвращает ошибку. */ DeleteByValue(): void | never; /** * Находит соответствующий множественный элемент с заданным значением ключевого поля. * Если такой элемент не найден, возвращает ошибку. * @param {string} value - Значение ключа. * @param {string} name - Имя элемента, являющегося ключом. Если имя ключа не указано, используется первичный ключ. * @returns {XmlElem<T>} Объект {@link XmlElem}. */ GetByKey<K>(value: K, name?: string): XmlElem<T>; /** * Ищет соответствующий множественный элемент с заданным ключевым элементом. * Если не находит, то добавляет новый дочерний элемент, и его ключевому полю присваивает заданное значение. * Возвращает ранее существовавший или вновь созданный дочерний элемент. * @param {K} value - Значение ключа. * @param {string} name - Имя элемента, являющегося ключом. Если имя ключа не указано, используется первичный ключ. * @returns {XmlElem<T>} Объект {@link XmlElem}. */ ObtainByKey<K>(value: K, name?: string): XmlElem<T>; /** * Находит элемент, относящийся к данному объекту по ключу. * В случае его отсутствия, добавляет элемент в соответствующую позицию по возрастанию ключа. * @param {K} value - Значение ключа. * @param {string} name - Имя элемента, являющегося ключом. Если имя ключа не указано, используется первичный ключ. * @returns {XmlElem<T>} Объект {@link XmlElem}. */ ObtainByKeySorted<K>(value: K, name: string): XmlElem<T>; /** * Ищет соответствующий множественный элемент с заданным значением. * Если не находит, добавляет новый элемент и присваивает ему заданное значение. * @param {K} value - Значение элемента. */ ObtainByValue<K>(value: K): XmlElem<T>; } type XmlMultiElem<T> = XmMultiElem<T> & T;