Vue3项目使用Ts:不能将类型“(XXX?: boolean) => void”分配给类型“(payload: MouseEvent) => void”

事件绑定的函数不传值时,函数的第一个参数默认是 $event,类型是”MouseEvent“。

Vue3项目使用Ts:不能将类型“(XXX?: boolean) => void”分配给类型“(payload: MouseEvent) => void”_第1张图片

解决:传一个默认的参数即可,示例代码如下:

<template>
  <!-- <div class="title" @click="showDialog">{{ navTitle }}</div> -->
  <div class="title" @click="showDialog(true)">{{ navTitle }}</div>
</template>

<script lang="ts">
import { defineComponent, inject, reactive, toRefs, watch } from 'vue'
export default defineComponent({
  name: 'InfoModule',
  setup () {
    const data = reactive({
      showTitleDialog: false, // 弹窗是否显示
      navTitle: ''
    })
    // 点击标题显示弹窗
    const showDialog = (val = true) => {
      data.showTitleDialog = val
    }

    return {
      showDialog,
      ...toRefs(data)
    }
  }
})
</script>

你可能感兴趣的:(vue,vue.js,javascript,前端)