Vetur 说,在模板上使用道具时,“从不”类型中不存在道具

Posted

技术标签:

【中文标题】Vetur 说,在模板上使用道具时,“从不”类型中不存在道具【英文标题】:Vetur says prop doesn't exist on type "never" when using a prop on template 【发布时间】:2021-02-24 13:02:54 【问题描述】:

我在 VSCode 上使用带有 vue 组合 API 和 typescript 的 Quasar 框架。

当尝试在模板中使用道具时,Vetur 给我模板中的错误Property 'open' does not exist on type 'never'

来源

<template>
  <q-drawer v-model="open">
    test
  </q-drawer>
</template>

<script lang="ts">
import  defineComponent, ref  from '@vue/composition-api';

export default defineComponent(
  name: 'AuthedLayout',
  props: 
    open: 
      type: Boolean,
      required: true
    
  ,
  components: ,
  setup() 
);
</script>

<style></style>

感谢任何帮助

【问题讨论】:

【参考方案1】:

请尝试使用 Quasar 的以下语法,我在使用 antd 和 vue 时遇到了同样的问题。 v-model:value 应该可以工作,它会与 q-drawers v-model 同步

  <q-drawer v-model:value="open">
    test
  </q-drawer>

【讨论】:

这是因为我忘记了setup 中的return。这是一个问题【参考方案2】:

发现问题。这是因为我在setup 函数中没有return。该错误具有误导性

【讨论】:

以上是关于Vetur 说,在模板上使用道具时,“从不”类型中不存在道具的主要内容,如果未能解决你的问题,请参考以下文章

如何编译时检查 vue 模板中的强类型道具?

如何在 VS Code 中为模板中的 vue 道具启用 Typescript 打字和智能感知?

当“@”用于打字稿类组件模板中的事件绑定时,Vetur 未正确读取函数名称

使用 Apollo 在 TypeScript 中填充常量时,对象的类型为“未知”.Vetur(2571)

Vue:组件/模板作为道具

“从不”类型上不存在属性“值”。在 mui 中使用 useRef 挂钩时