You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte TS项目调用ECharts setOption报Expected 0 type arguments错误

报错根因

版本依赖冲突:

  • 安装的@types/echarts@^4.9.15是第三方为ECharts 4.x版本维护的类型定义,和你使用的ECharts 5.3.3版本完全不兼容
  • ECharts自5.0版本开始已经内置官方维护的TypeScript类型,无需额外安装@types/echarts包
  • 当前TS读取的是4.x版本的旧类型定义,其中setOption方法未定义泛型参数,因此抛出Expected 0 type arguments, but got 1错误。
修复方案
  1. 卸载冲突的旧类型依赖
npm uninstall @types/echarts
# 使用其他包管理器对应替换命令即可:yarn remove @types/echarts / pnpm remove @types/echarts
  1. 调整代码逻辑,移除setOption后多余的泛型传参,同时修正Svelte中DOM获取的时机问题(顶层脚本执行时DOM还未渲染,直接调用document.getElementById会拿到空值),修正后代码如下:
<script lang="ts">
    import * as echarts from 'echarts';
    import type { EChartsOption } from 'echarts';
    import { onMounted } from 'svelte';

    let chartDom: HTMLDivElement;
    let myChart: echarts.ECharts;
    let option: EChartsOption;

    onMounted(() => {
        myChart = echarts.init(chartDom);
        option = {};

        myChart.on('updateAxisPointer', function (event: any) {
            const xAxisInfo = event.axesInfo[0];
            if (xAxisInfo) {
                const dimension = xAxisInfo.value + 1;
                myChart.setOption({
                    series: {
                        id: 'pie',
                        label: {
                            formatter: '{b}: {@[' + dimension + ']} ({d}%)'
                        },
                        encode: {
                            value: dimension,
                            tooltip: dimension
                        }
                    }
                });
            }
        });

        myChart.setOption(option);
    })
</script>

<div bind:this={chartDom} id="main" style="width: 100%; height: 400px;"></div>
补充说明

如果卸载依赖后仍存在类型报错,删除项目node_modules目录与依赖锁文件后重新执行依赖安装,重启TS服务清除旧类型缓存后错误就会消失。

内容的提问来源于stack exchange,提问作者user1916077

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 17:24:21