【Vue3+Typescript】报错:类型 boolean 不可分配给类型 Boolean

本文主要是介绍【Vue3+Typescript】报错:类型 boolean 不可分配给类型 Boolean,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vue3的组件【<button/>】参数是Boolean对象类型,Props的参数类型也是【Boolean对象类型】但是经过Typescript转换之后则变成了boolean简单类型,为此需要手动转换才可以正常使用!

报错代码: 

<script lang="ts">
import { defineComponent } from "vue"export default defineComponent({name: "MyButton",props: {buttonLabel: {type: String,required: true},isDisabled: {type: Boolean,required: true}},
})
</script><template><div class="greetings"><!--这里如果使用props中的isDisabled的值会报错【因为isDisabled这里是一个boolean简单类型】--><button :disabled="isDisabled">ok</button><input :placeholder="buttonLabel" /></div>
</template><style scoped>
.greetings {display: flex;justify-content: center;align-items: center;height: 100%;
}button {padding: 10px 20px;font-size: 16px;cursor: pointer;
}button:disabled {background-color: grey;cursor: not-allowed;
}
</style>

正确解决方案案例:

<script lang="ts">
import { defineComponent } from "vue"export default defineComponent({name: "MyButton",props: {buttonLabel: {type: String,required: true},isDisabled: {type: Boolean,required: true}},setup(props) {/*** 1、由于按钮button的属性【:disabled="disabledButtonProps"】其中属性disabled为Vue3的Boolean类型!* 2、这里copy一份Boolean类型的参数向外部暴露,避免使用直接转换成了boolean类型的值!* 3、props中的参数本来就是一个响应式类型的值,所以不需要再次使用ref进行包装!*/const isDisabledBooleanTypeProps = props.isDisabledconst buttonLabelStringTypeProps = props.buttonLabelreturn {isDisabledBooleanTypeProps,buttonLabelStringTypeProps}}
})
</script><template><div class="greetings"><!--这里如果使用props中的isDisabled的值会报错【因为isDisabled这里是一个boolean简单类型】--><button :disabled="isDisabledBooleanTypeProps">{{ a }}</button><input :placeholder="buttonLabelStringTypeProps" /></div>
</template><style scoped>
.greetings {display: flex;justify-content: center;align-items: center;height: 100%;
}button {padding: 10px 20px;font-size: 16px;cursor: pointer;
}button:disabled {background-color: grey;cursor: not-allowed;
}
</style>

 

这篇关于【Vue3+Typescript】报错:类型 boolean 不可分配给类型 Boolean的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015405

相关文章

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

C# dynamic类型使用详解

《C#dynamic类型使用详解》C#中的dynamic类型允许在运行时确定对象的类型和成员,跳过编译时类型检查,适用于处理未知类型的对象或与动态语言互操作,dynamic支持动态成员解析、添加和删... 目录简介dynamic 的定义dynamic 的使用动态类型赋值访问成员动态方法调用dynamic 的