vue3组件TS类型声明实例代码

为 props 标注类型

 当使用

<script setup lang="ts">const props = defineProps({foo: { type: String, required: true },bar: Number})props.foo // stringprops.bar // number | undefined</script>

这被称为 运行时声明 ,因为传递给 defineProps() 的参数会作为运行时的 props 选项使用。

第二种方式,通过泛型参数来定义 props 的类型,这种方式更加直接:

<script setup lang="ts">const props = defineProps<{foo: stringbar?: number}>()</script>

这被称为 基于类型的声明 ,编译器会尽可能地尝试根据类型参数推导出等价的运行时选项。

我们也可以将 props 的类型移入一个单独的接口中:

<script setup lang="ts">interface Props {foo: stringbar?: number}const props = defineProps<Props>()</script>

基于类型的方式更加简洁,但失去了定义 props 默认值的能力。我们可以通过目前实验性的 响应性语法糖 来解决:

<script setup lang="ts">interface Props {foo: stringbar?: number}// 响应性语法糖 默认值会被编译为等价的运行时选项const { foo, bar = 100 } = defineProps()

这个行为目前需要在配置中显式地选择开启:

// vite.config.jsexport default {plugins: [vue({reactivityTransform: true})]}// vue.config.jsmodule.exports = {chainWebpack: (config) => {config.module.rule('vue').use('vue-loader').tap((options) => {return {...options,reactivityTransform: true}})}}

如果没有使用

import { defineComponent } from 'vue'export default defineComponent({props: {message: String},setup(props) {props.message // <-- 类型:string}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文了解HTTPS的加密原理

HTTPS是一种安全的网络通信协议&#xff0c;用于在互联网上提供端到端的加密通信&#xff0c;确保数据在客户端&#xff08;如Web浏览器&#xff09;与服务器之间传输时的机密性、完整性和身份验证。HTTPS的加密原理主要基于SSL/TLS协议&#xff0c;以下详细阐述其工作过程&…

欧盟EDPS发布2023年度报告,强调数据安全的重要性

文章目录 前言一、EDPS在政策制定中发挥的作用1、人工智能方面。2、数字货币(欧元)方面。3、《通用数据保护条例》(GDPR)方面。4、打击跨国犯罪。5、飞机旅客的个人数据保护。二、EDPS科技与隐私小组(T&P)的下属部门1、技术监测与预测部门。2、数字化转型部门。3、系…

常见程序故障排查及程序配置

文章目录 故障排查基础关机/重启/注销系统信息和性能查看磁盘和分区⽤户和⽤户组⽹络和进程管理常⻅系统服务命令⽂件和⽬录操作⽂件查看和处理打包和解压RPM包管理命令YUM包管理命令DPKG包管理命令APT软件⼯具 分析工具JDK自带分析工具jpsjstatjinfojmapjhatjstackjcmd GUI分析…

播放Samba协议下的音视频文件

Samba&#xff08;也被称为SMB/CIFS&#xff09;是一个用于在局域网内共享文件和打印服务的协议&#xff0c;广泛应用于Windows和Linux系统之间的文件共享。 一、展示Samba服务器下的文件 使用如jcifs这样的Java库来在安卓应用中集成SMB/CIFS客户端功能。这个库提供了与SMB/CI…

QT:QMainWindow、ui界面、资源文件的添加、信号和槽

1.练习&#xff1a;使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(…

设计模式-开闭原则和迪米特法则

开闭原则 基本介绍 开闭原则(Open Closed Principle) 是编程中最基础、最重要的设计原则一个软件实体如类&#xff0c;模块和函数应该对扩展开放(对提供方)&#xff0c;对修改关闭(对使用方)。用抽象构建框架&#xff0c;用实现扩展细节。当软件需要变化时&#xff0c;尽量通…

第6章 6.3.1 正则表达式的语法(MATLAB入门课程)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 正则表达式可以由一般的字符、转义字符、元字符、限定符等元素组…

算法题解记录8+++爬楼梯(百日筑基)

题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶…

KVM虚拟机

文章目录 QEMU-KVM介绍虚拟网卡流程网卡透访流程 QEMU-KVM介绍 QEMU ● QEMU是一个主机上的VMM (Virtual machine monitor), 通过动态二进制模拟CPU&#xff0c;并提供一系列的硬件模型&#xff0c;使Guest OS能够与Host硬件交互。 ● QEMU的代码中有完整的虚拟机实现&#xf…

【C++】1.从C语言转向C++

目录 一.对C的认识 二.C的关键字 三.命名空间 3.1命名空间的定义 3.2命名空间的使用 四.C的输入与输出 五.缺省参数 5.1全缺省参数 5.2半缺省参数 六.函数重载 七.引用 7.1引用的特性 7.2引用和指针的区别 八.内联函数 九.auto关键字&#xff08;C1…

WEB漏洞——XXE

文章目录 前言一、XXE简述及XML基础XXE简述XML基础xml简介文档格式xml树结构xml其它xml语法1、格式良好的xml2、编写第一段XML代码DTD介绍内部文档声明(即DTD在XML源文件中)外部文档声明(DTD位于XML源文件的外部)XML文档构建模块Elements(元素)数量词的用法Attributes(属…

常州南京旅游安排

第一天&#xff1a;中华恐龙园初体验与市区美食 上午&#xff08;10:30 - 12:00&#xff09; 早晨提前出发&#xff0c;争取早点进入&#xff0c;以减少热门项目的排队时间。10:00 到达园区后&#xff0c;首先前往“4D过山车”等热门项目&#xff0c;这些项目通常人气较高&am…

CISA :恶意软件分析平台Malware Next-Gen全新升级

本周三&#xff0c;美国网络安全和基础设施安全局&#xff08;CISA&#xff09;发布了新版恶意软件分析平台Malware Next-Gen&#xff0c;现在公众可以提交任意恶意软件样本供 CISA 分析。 据悉&#xff0c;Malware Next-Gen 可用于检查恶意软件样本中是否存在可疑项目。它最初…

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成 目录 数据生成 | Matlab实现基于SNN浅层神经网络的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于SNN浅层神经网络的数据生成&#xff0c;运行环境Matlab2021b及以上&#xff1b; …

在windows中anaconda中安装fasttext (whl 文件安装)

Anaconda安装第三方包&#xff08;whl文件&#xff09; windows 安装fasttext 一直不成功&#xff0c;python 版本3.8 网上教程都是 https://www.lfd.uci.edu/~gohlke/pythonlibs/#fasttext 下载然后安装&#xff0c;但是这个网站里我没找到哈哈哈。。。 然后就是成功方案&am…

Pygame教程10:在背景图片上,添加一个雪花特效

------------★Pygame系列教程★------------ Pygame经典游戏&#xff1a;贪吃蛇 Pygame教程01&#xff1a;初识pygame游戏模块 Pygame教程02&#xff1a;图片的加载缩放旋转显示操作 Pygame教程03&#xff1a;文本显示字体加载transform方法 Pygame教程04&#xff1a;dra…

移植 amd blas 到 cuda 生态

1&#xff0c;下载源码 GitHub - ROCm/rocBLAS: Next generation BLAS implementation for ROCm platform $ git clone --recursive https://github.com/ROCm/rocBLAS.git 2&#xff0c; 编译 2.1 不带Tensile的编译 如果是在conda环境中&#xff0c;需要deactive conda 环境…

信息学奥赛一本通T1457-Power Strings【KMP】

信息学奥赛一本通T1457-Power Strings - C语言网 (dotcpp.com) #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N1e6100; char str[N]; int nex[N]; int res0; signed main() {while(scanf("%s",st…

[2024]最新激活Navicat教程附激活码

PS&#xff1a;在开始前&#xff0c;建议先断开本地网络&#xff01;&#xff01;&#xff01;建议先断开本地网络&#xff01;&#xff01;&#xff01;建议先断开本地网络&#xff01;&#xff01;&#xff01; 1 安装 1.1 点击下一步 1.2 许可证选择“我同意”&#xff0c…

【云计算】云网络产品体系概述

云网络产品体系概述 在介绍云网络产品体系前&#xff0c;先介绍几个与云计算相关的基础概念。 阿里云在基础设施层面分为 地域 和 可用区 两层&#xff0c;关系如下图所示。在一个地域内有多个可用区&#xff0c;每个地域完全独立&#xff0c;每个可用区完全隔离&#xff0c;同…