Vue2.6 , Typescript3 项目引入 Echarts 时报错,内容如下
Argument of type 'Vue | Element | Vue[] | Element[]' is not assignable to parameter of type 'HTMLDivElement | HTMLCanvasElement'. Type 'Vue' is not assignable to type 'HTMLDivElement | HTMLCanvasElement'. Type 'Vue' is missing the following properties from type 'HTMLCanvasElement': height, width, getContext, toBlob, and 243 more.Vetur(2345)
ECharts.vue
<template> <div> <div ref="main" style="width:500px;height:500px;"></div> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator' import * as echarts from 'echarts' @Component({ components: {} }) export default class ECharts extends Vue { private mounted() { console.info('mounted') console.info(echarts) console.info(this.$refs.main) const mainEle = this.$refs.main const myChart = echarts.init(mainEle) myChart.setOption({ title: { text: 'ECharts 入门示例' }, tooltip: {}, xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] }, yAxis: {}, series: [ { name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] } ] }) console.info(myChart) } } </script> <style scoped lang="scss"></style>
错误出现在 ECharts.vue 第17行 const mainEle = this.$refs.main
解决方案
将 this.$refs.main
内容修改为 this.$refs.main as HTMLDivElement
即可