首页 > 解决方案 > eCharts 工具提示打字稿

问题描述

我正在使用 eChart v5.0.2 并使用 Typescript 自定义工具提示,但似乎无法解决有关格式化程序的此错误。

所以在 function 关键字上,错误消息指出:Type '(params: Format | Format[]) => string | Formatter' 不可分配给类型 'string | 格式化程序 | 不明确的'。

在 params.value 上,错误是:Type '(params: Format | Format[]) => string | Formatter' 不可分配给类型 'string | 格式化程序 | 不明确的'。

我真的很感激任何帮助,谢谢!

这是我拥有的代码:


            let option: echarts.EChartOption = {
                xAxis: {},
                yAxis: {},
                series: [{
                    symbolSize: 20,
                    data: chartData,
                    type: 'scatter'
                }],
                tooltip: {
                    showDelay: 0,
                    formatter: function (params): (string | echarts.EChartOption.Tooltip.Formatter) {
                       
                        if (params) {
                            let xValue = params.value[0];
                            let yValue = params.value[1];
                            let dttmValue = params.value[2];

                            return xValue + yValue + dttmValue;
                        }

                        return '';
                    },
                },
            };

            option && chart.setOption(option);```

标签: javascripttypescriptecharts

解决方案


看起来格式化程序值实际上是一个echarts.EChartOption.Tooltip.Formatter函数,但是在您声明格式化程序函数时,您实际上是在说格式化程序属性是一个返回格式化程序函数的函数。

所说: (string | echarts.EChartOption.Tooltip.Formatter)的部分是您明确声明函数的返回类型的部分。不是我想的你想要的。

看起来您的格式化程序值要符合的类型在https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/echarts/options/tooltip.d.ts#L390中进行了描述,也就是说应该是一个返回字符串的函数,因此可能: string定义返回值就足够了 - 或者只从函数返回字符串,Typescript 会推断它是作为格式化程序的正确函数。


推荐阅读