用defineComponent, 在setup 里emit 事件时会报红色的错误

来源:3-8 更近一步 - reactive

慕函数5812448

2021-06-17

您好老师,请叫vue3+ts 的问题,
问题描述:
在 定义组件时,用defineComponent , 在setup 里自定义事件emit(‘loginTypeClick’, type),会报红,说Cannot invoke an expression whose type lacks a call signature. Type ‘EmitsOptions’ has no compatible call signatures.没有签名
代码:

<script lang="ts">
import { ref, defineComponent } from 'vue'

export default defineComponent({
  name: 'NavList',
  setup(props, { emit }) {
    let loginType = ref(1)
    const navClick = (type: number): void => {
      loginType.value = type
      emit('loginTypeClick', type)//这一句要报红,
    }
    return {
      navClick,
      loginType,
    }
  },
})
</script>

不影响运行, 但是vscode 这里会报红,说不兼容签名什么,

强迫症,想知道什么原因 怎么解决这个问题;麻烦老师了

写回答

1回答

张轩

2021-06-18

同学你好 我使用你的代码并没有出现上诉的错误。请看截图

//img.mukewang.com/szimg/60cbfbb509e5eea911280952.jpg

能否提供一下你的代码库呢? 我在本地试一下。

0
1
farmer_code
每个vue组件都要 加上defineComponent,很烦人啊...。删除defineComponent不报错,不知有没有什么影响
2021-06-21
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程