Subscribe on changes!

computed 函数导致不知原因的 ts error

avatar
Sep 14th 2021

Version

3.2.4

Reproduction link

sfc.vuejs.org/

Steps to reproduce

<template>
  <div>
    {{ type }}
  </div>
</template>

<script lang="ts" setup>
import { computed } from 'vue'

interface Props {
  type: boolean
}

const props = defineProps<Props>()

const type = computed(() => (props.type ? 'increase' : 'decrease'))
</script>

这是一个很简单的案例示范,我不知道这是否和我使用的 ide 以及 volar 插件有关,目前我在使用 vscode,但是它似乎出现了一些问题

当我使用 computed 函数时,模板中的所有的 ts 类型都将失效,我不知道这发生了什么,但它会偶尔出现,

image

What is expected?

正确解析 ts type

What is actually happening?

出现了 ts error

avatar
Sep 14th 2021

应该是是 props 的问题,而不是 computed 的问题。

avatar
Sep 14th 2021

应该是是 props 的问题,而不是 computed 的问题。

好像还真是 props 的问题,当我把它删除了之后又正常了,你指定解决的办法吗?

image

删除 props 后:

image

avatar
Sep 14th 2021

应该是是 props 的问题,而不是 computed 的问题。

我知道了。应该是我声明的变量和 props 同名产生了冲突,我应该避免这么做,感谢你的提醒!