如何使 d3 data() 函数理解我的数据类型?
D3 data() 认为参数 d
的类型为 unknown
,这不是真的。
interface DataType {
id: string;
display: string;
}
const mydata: DataType[] = [{ id: "abc", display: "First Value" }];
d3.selectAll("rect").data(mydata, (d) => d.id);
//(parameter) d: unknown
将鼠标悬停在 VSCode 中的 (d)
上,我收到 typescript 消息 (parameter) d:unknown
将鼠标悬停在 VSCode 中的 => d.id
上,我看到 typescript 错误 Object is of typeunknown ts(2571)
在另一个密切相关的question ,一些人建议确保结果 d.id 被强制作为字符串,但这对我来说仍然不起作用。但是,它确实改变了 typescript 错误。
//force string
d3.selectAll("rect").data(mydata, (d: DataType) => `${d.id}`);
“(d: DataType) => string”类型的参数不可分配给“ValueFn
我正在使用 typescript 4.8.2
我用npm istall d3
安装了整个d3,版本是7.6.1
最佳答案
您可以注释选择的类型,这使得 Typescript 可以显示正确的类型。
interface DataType {
id: string;
display: string;
}
const mydata: DataType[] = [{ id: "abc", display: "First Value" }];
d3.selectAll<SVGRectElement, DataType>("rect")
.data<DataType>(mydata, (d) => d.id);
关于typescript - 如何使 D3 .data() 参数识别输入数据的 typescript 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73535581/