【问题标题】:Vue 3 - TS - Vuetify 3.1.2 type 'boolean' is not assignable to type 'never'Vue 3 - TS - Vuetify 3.1.2 类型 \'boolean\' 不可分配给类型 \'never\'
【发布时间】:2023-02-18 21:03:52
【问题描述】:

我正在开发一个应用程序Vue 3 (3.2.45),打字稿 (4.9.4)验证 (3.1.2).

许多的验证组件需要你通过道具指示默认样式、位置或某些 v-model 来显示/隐藏组件。有时,每当我传递 prop(如他们的文档中所指定)时,编译器都会给我以下错误:

Type 'boolean' is not assignable to type 'never'

布尔值只是一个例子,它只是说明我试图传递给 v-model 的任何类型。以下代码是给出错误的示例:

<template>
  <div class="main-content">
    <h2>Home</h2>
    <v-dialog
      v-model="dialog"
    >
      <template v-slot:activator="{ props }">
        <v-btn
          color="primary"
          v-bind="props"
        >
          Open Dialog
        </v-btn>
      </template>
      <v-card>
        <v-card-text>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
        </v-card-text>
        <v-card-actions>
          <v-btn color="primary" block @click="dialog = false">Close Dialog</v-btn>
        </v-card-actions>
      </v-card>
    </v-dialog>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
const dialog = ref(false);
</script>

在这种情况下,v-对话框组件来自验证需要一个类型为布尔值根据他们自己的文档 (https://next.vuetifyjs.com/en/api/v-dialog/)。

正如你在这里看到的,我在v模型:

代码仍然有效但是我的编译器抱怨并在我的工作区中显示带有这种“错误”红色的文件,这让我很烦恼。

这只是(到目前为止)发生在 Vuetify 组件上。我自己创建和输入的那些不会显示这种行为。

我不知道是否有一种方法可以配置我的文本编辑器 (vs-code) 以忽略此警告,或者我是否做错了什么触发了错误。

【问题讨论】:

  • 我有一个项目,其设置与您几乎相同(Vuetify 3.0.7 和 Typescript 4.7.4),并且 vscode 正确推断出该属性:(property) modelValue?: boolean | undefined。你用Volar吗?
  • 在我的例子中,如果我不向 v-model 传递任何值,它会将其类型推断为 any,但如果我传递布尔值,那么它会将其推断为 boolean,这有点奇怪。我用掌侧.除了 Volar 之外,您还配置了什么不同的东西吗?喜欢任何特定的打字稿插件吗?
  • 你在使用删除模式吗?
  • @RussDeneychuk 不。我尝试禁用 Typescript Vue 插件,因为它是被推荐的,但我仍然收到错误。
  • 只是内置的。以为我启用了takeover mode,但它没有(而且它似乎给出了相同的结果)。另外,我没有令人沮丧的“Typescript Vue 插件”,只有常规的“Vue 语言功能”。将 Vuetify 更新到 3.1.2,结果相同。

标签: typescript vuejs3 vuetify.js


【解决方案1】:

尝试像这样声明模型let dialog = ref(false),并在活动期间尝试const eventDialog = () =&gt; { dialog.value = false; }

【讨论】:

    猜你喜欢
    • 2021-06-07
    • 1970-01-01
    • 2021-01-12
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2023-01-22
    相关资源
    最近更新 更多