首页 > 解决方案 > Vue打字稿参考:无法在布尔值'false'上创建属性'value'

问题描述

我正在使用带有打字稿和无头 ui 的 vue。当我尝试按照以下示例显示对话框时:https://headlessui.dev/vue/dialog,我收到错误消息:Type 'true' is not assignable to type 'Ref'

我在组件类中声明了 isOpen 变量:

private readonly isOpen = ref<boolean>(false);

打开对话框的按钮的 html 是:

<button class="btn" @click="toggleGuestList(true)">View list</button>

切换对话框的方法是:

public toggleGuestList(toggle:boolean) {
   this.isOpen.value =  toggle;
}

当这个方法被激活时,我得到了错误:

无法在布尔值“false”上创建属性“值”

似乎 isOpen 被解析为一个普通的布尔值。我怎样才能强迫它把它看作一个参考?我试过 (this.isOpen as Ref< boolean >).value = true ,但没​​有解决问题。

标签: typescriptvuejs3

解决方案


var obj = false;
obj.name = 'hello';  // TypeError: Cannot create property 'name' on boolean 'false'

var obj = {};
obj.name = 'hello';  // OK

推荐阅读