首页 > 解决方案 > Flow.js 中的 SVG 类型支持?

问题描述

我查看了各种github 线程,似乎 SVG 支持没有在 Flow.js 的当前版本中合并/提供(我正在使用 VS Code 扩展vscode-flow-ide)。我正在尝试使用 SVG refs,现在不得不混合使用不太具体的类型 ( Element) 并// $FlowFixMe解决这些问题 - 从更广泛的类型安全角度来看,这并不理想。

有人解决了这个问题吗?我/flow/lib/dom.js目前正在使用,但它缺少这些类型。

标签: reactjsdomsvgflowtype

解决方案


在正式包含之前的临时解决方案......

对于缺少的类型,请为您打算使用的属性子集实现您自己的类型。

例如,我正在处理 SVG,所以在一个文件中(以DOM 类型SVGElement.js.flow命名):

type SVGElement = HTMLElement & 
{
    fonts: [],
    fillOpacity: number
    //...
    //In reality, SVGElement has many more properties, but you can include  
    //only those you will use and which thus require type-safety.
    //You can add whatever you need, incrementally, as time passes.
}

只输入方法和属性的子集比实现整个类型更容易。

允许从存在于的&继承;见交叉点类型HTMLElement/flow/lib/dom.js


推荐阅读