Свойство ‘XmlSerializer’ не существует для типа ‘Window’ в angular 6

#angular #xmlserializer

#angular #xmlserializer

Вопрос:

Как добавить ссылку на Windows в angular 6.

У меня есть следующий код, который выдает следующую ошибку, поскольку свойство ‘XmlSerializer’ не существует для типа ‘Window’

 serializeXmlNode(xmlNode) {
    if (typeof window.XMLSerializer != "undefined") {
      return (new window.XMLSerializer()).serializeToString(xmlNode);
    } else if (typeof xmlNode.xml != "undefined") {
      return xmlNode.xml;
    }
    return "";
  }

  

Как добавить ссылку на windows.xmlserializer в angular 6?

Ответ №1:

Ну, быстрый грязный способ — преобразовать окно в любой:

 serializeXmlNode(xmlNode) {
    if (typeof **(<any>window)**.XMLSerializer != "undefined") {
        return (new **(<any>window)**.XMLSerializer()).serializeToString(xmlNode);
    } else if (typeof **(<any>xmlNode)**.xml != "undefined") {
        return **(<any>xmlNode)**.xml;
    }
    return "";
}
  

Я также привел XmlNode, поэтому нет жалоб на то, что у узла нет свойства с именем xml.

Вероятно, есть лучший способ сделать это, добавив в интерфейс Window, но я не заставил это работать.