【问题标题】:Flowtype error when using XML classes使用 XML 类时出现流类型错误
【发布时间】:2023-03-08 19:12:01
【问题描述】:

我有一个前端 React 应用程序,并设置了流程。 它有一些简单的 XML 相关代码:

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

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

但是,flow 报告以下错误:

无法解析名称 XMLDocument

无法解析名称 XPathResult

我想我需要导入该类,但我不知道它将在哪个模块中定义。我也没有在流类型中找到定义。

有什么想法吗?谢谢!

【问题讨论】:

    标签: javascript xml flowtype


    【解决方案1】:

    如果你search the Flow repo on github for "DOMParser",它会引导你到this definition

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

    所以看起来 Flow 调用了 XMLDocumentDocument,所以你只需要稍微调整一下你的定义:

    const xmlDoc: Document = new DOMParser().parseFromString(xmlString,"text/xml");
    
    xmlDoc.evaluate(xPath, xmlDoc, null, XPathResult.ANY_TYPE, null);
    

    让我知道这是否有效。我没有在我的本地计算机上检查它,由于某种原因,这在 https://flow.org/try 上不起作用@

    附:我在 Flow lib 文件夹中没有看到 XPathResultevaluate 方法的定义,所以现在可能没有定义。也许你想加入 PR 来添加这些?

    【讨论】:

    • 谢谢詹姆斯。我试过了,但现在出现以下错误:> 无法调用 xmlDoc.evaluate,因为 Document 中缺少属性评估
    • 太棒了。谢谢。 :)
    • 在那之前,也许只需在其上方添加 //$FlowFixMe 评论以记录问题
    猜你喜欢
    • 2016-05-15
    • 2021-09-06
    • 2011-10-17
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多