@boristype/types
Version:
<h1 align="center">WT Types</h1> <div align="center"> Typescript типы для WebSoft HCM.
77 lines (66 loc) • 4.58 kB
TypeScript
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;