代码之家  ›  专栏  ›  技术社区  ›  b404

如何在d3 react typescript应用程序中正确设置“path”元素中属性“d”的类型

  •  1
  • b404  · 技术社区  · 3 年前

    我试着用d3画一个三角形 symbol() 方法并将其分配给变量 symbolTri .

    import { symbol, symbolTriangle } from "d3"
    const symbolTri = symbol().size(100).type(symbolTriangle)
    
    export const Component = () => {
        // ...
        return (
            <g>
                <path d={symbolTri()} />
            </g>
        )
    }
    

    但是在设置 d 属性a typescript错误 Type 'string | null' is not assignable to type 'string | undefined'. 发生。当悬停在显示的错误上时 'd' value should be of type d?: string | undefined; . 但我无法正确设置。任何帮助或建议都会非常有用。

    1 回复  |  直到 3 年前
        1
  •  1
  •   Robby Cornelissen    3 年前

    最简单的解决方案,假设 symbolTri() 不能为null(在这种情况下,这似乎是一个合理的假设),即使用 non-null assertion operator ,这有效地告诉TypeScript编译器,该变量永远不会 null :

    <path d={symbolTri()!} />