Ошибка типа потока при использовании классов XML

У меня есть внешнее приложение React с настроенным потоком. Он имеет простой код, связанный с XML:

const xmlDoc: XMLDocument = new DOMParser().parseFromString(xmlString,"text/xml");

xmlDoc.evaluate(xPath, xmlDoc, null, XPathResult.ANY_TYPE, null);

Однако поток сообщает о следующей ошибке:

Не удается разрешить имя XMLDocument

Не удается разрешить имя XPathResult

Я предполагаю, что мне нужно импортировать класс, но я не знаю, в каком модуле он будет определен. Я также не нашел определений в потоке.

Есть идеи ? Спасибо !


person Jean-Noël Delavalade    schedule 15.05.2018    source источник


Ответы (1)


Если вы выполните поиск в репозитории Flow на github по запросу "DOMParser", это приведет вас к этому определению:

declare class DOMParser {
    parseFromString(source: string, mimeType: string): Document;
}

Итак, похоже, что Flow вызывает XMLDocument в Document, поэтому вам просто нужно немного изменить определение:

const xmlDoc: Document = new DOMParser().parseFromString(xmlString,"text/xml");

xmlDoc.evaluate(xPath, xmlDoc, null, XPathResult.ANY_TYPE, null);

Дай мне знать, если это работает. Я не проверял это на своем локальном компьютере, и по какой-то причине это не работает на https://flow.org/try

P.S. Я не вижу определения для XPathResult или метода evaluate в папке Flow lib, так что, вероятно, это не определено прямо сейчас. Может быть, вы хотите добавить PR, чтобы добавить их?

person James Kraus    schedule 15.05.2018
comment
Спасибо, Джеймс. Я попробовал, но теперь у меня следующая ошибка: › Невозможно вызвать xmlDoc.evaluate, поскольку в документе отсутствует оценка свойства - person Jean-Noël Delavalade; 15.05.2018
comment
Большой. Спасибо. :) - person Jean-Noël Delavalade; 15.05.2018
comment
Пока это не произойдет, возможно, просто добавьте //$FlowFixMe комментарий над ним, чтобы задокументировать проблему - person James Kraus; 15.05.2018