当前位置: 首页 > news >正文

【Vue】Vue3.0(十四)接口,泛型和自定义类型的概念及使用

上篇文章: 【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式

🏡作者主页:点击!

🤖Vue专栏:点击!

⏰️创作时间:2024年10月20日12点50分

文章目录

    • 1、接口概念作用及定义
    • 2、泛型和自定义类型;比如可以规定一个数组中的元素的类型:
      • 写法一:在定义具体变量的时候使用泛型
      • 写法二;在定义接口的时候,定义自定义类型就使用泛型

1、接口概念作用及定义

在 Vue 3 中,接口是一种用于定义对象形状的方式,它可以帮助我们确保组件接收正确的数据类型和结构。接口的使用可以提高代码的可读性和可维护性,特别是在涉及到组件之间的数据传递和交互时;

接口的定义
在 Vue 3 中,可以使用 TypeScript 来定义接口。接口使用interface关键字进行声明,后面跟着接口的名称(通常以大写字母I开头,这是一种命名约定,但不是必需的),然后是一对花括号,在花括号内定义接口的属性和方法。例如:

interface IUser {id: number;name: string;age: number;
}

在上述代码中,定义了一个名为IUser的接口,它描述了一个用户对象的形状,包含id、name和age三个属性,分别为数字类型、字符串类型和数字类型。

作用:比如我在其他的组件中想要创建一个Person类型的对象,那如果有这个标准规则了,如果创建的对象中的属性错误的话,那就会自动提示,让我们进行修改,以避免我们属性因为大意写错。
使用例子:
定义规则
在这里插入图片描述
使用规则定义变量
在这里插入图片描述
在这里插入图片描述

定义的personEx变量中有Interface种的属性,符合属性的名字和类型,所以不会提示错误,如果其中的name写成了name1,那就会提示红线,让我们进行修改。

2、泛型和自定义类型;比如可以规定一个数组中的元素的类型:

写法一:在定义具体变量的时候使用泛型


<script lang="ts" setup name="Person">
import {type personInter} from '@/types'
//let personEx:personInter={id:'1121212',name:'张三',age:18}
//console.log('personEx=',personEx);//规定一个数组中的每一个元素都是person类型的规则
let persons:Array<personInter> =[  //在定义具体变量的时候使用了泛型{id:'1121211',name:'张三',age:18},{id:'1121213',name:'王五',age:19},{id:'1121215',name:'赵六',age:20}
]
console.log('persons=',persons);</script>

写法二;在定义接口的时候,定义自定义类型就使用泛型

先定义 一个自定义类型:type

//定义自定义类型:一个Person数组中元素类型
export type persons = Array<personInter> //写法二
export type persons2=personInter[]//写法三

使用

<template><div class="person">???</div>
</template><script lang="ts" setup name="Person">
import { type personInter, type persons, type persons2 } from '@/types'
let personEx: personInter = { id: '1121212', name: '张三', age: 18 }
console.log('personEx=', personEx);//方法一:规定一个数组中的每一个元素都是person类型的规则
let persons: Array<personInter> = [{ id: '1121211', name: '张三', age: 18 },{ id: '1121213', name: '王五', age: 19 },{ id: '1121215', name: '赵六', age: 20 }
]
console.log('persons=', persons);//方法二定义一个元素符合personInter规则的数组
let personList2: persons = [{ id: '1121211', name: '张三', age: 18 },
{ id: '1121213', name: '王五', age: 19 },
{ id: '1121215', name1: '赵六', age: 20 }]
console.log('personList2=', personList2);//方法三 定义一个元素符合personInter规则的数组
let personList3: persons2 = [{ id: '1121211', name: '张三', age: 18 },
{ id: '1121213', name1: '王五', age: 19 },
{ id: '1121215', name: '赵六', age: 20 }]
console.log('personList3=', personList3);</script><style scoped>
.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;
}li {font: 1em sans-serif;
}
</style>

结果:
在这里插入图片描述
如果编写代码的时候填写错误,也都会有错误提示:
在这里插入图片描述

相关文章:

【Vue】Vue3.0(十四)接口,泛型和自定义类型的概念及使用

上篇文章&#xff1a; 【Vue】Vue3.0&#xff08;十三&#xff09;中标签属性ref&#xff08;加在普通标签上、加在组件标签上&#xff09;、局部样式 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Vue专栏&#xff1a;点击&#xff01; ⏰️创作时间&…...

【C++】红黑树万字详解(一文彻底搞懂红黑树的底层逻辑)

目录 00.引入 01.红黑树的性质 02.红黑树的定义 03.红黑树的插入 1.按照二叉搜索树的规则插入新节点 2.检测新节点插入后&#xff0c;是否满足红黑树的性质 1.uncle节点存在且为红色 2.uncle节点不存在 3.uncle节点存在且为黑色 04.验证红黑树 00.引入 和AVL树一样&am…...

开源FluentFTP实操,操控FTP文件

概述&#xff1a;通过FluentFTP库&#xff0c;轻松在.NET中实现FTP功能。支持判断、创建、删除文件夹&#xff0c;判断文件是否存在&#xff0c;实现上传、下载和删除文件。简便而强大的FTP操作&#xff0c;提升文件传输效率。 在.NET中&#xff0c;使用FluentFTP库可以方便地…...

论文解读 | ECCV2024 AutoEval-Video:一个用于评估大型视觉-语言模型在开放式视频问答中的自动基准测试...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 作者简介 陈修元&#xff0c;上海交通大学清源研究院硕士生 概述 总结来说&#xff0c;我们提出了一个新颖且具有挑战性的基准测试AutoEvalVideo&#xff0c;用于全…...

postgresql14主从同步流复制搭建

1. 如果使用docker搭建请移步 Docker 启动 PostgreSQL 主从架构&#xff1a;实现数据同步的高效部署指南_docker安装postgresql主从同步-CSDN博客 2. 背景 pgsql版本&#xff1a;PostgreSQL 14.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4…...

企业信息化管理中的数据集成方案:销售出库单对接

企业信息化管理中的数据集成方案&#xff1a;销售出库单对接 销售出库单旺店通→金蝶&#xff1a;高效数据集成案例分享 在企业信息化管理中&#xff0c;数据的高效流动和准确对接是实现业务流程自动化的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将旺店通…...

3.cpp基本数据类型

cpp基本数据类型 1.cpp基本数据类型 1.cpp基本数据类型 C基本数据类型和C语言的基本数据类型差不多 注意bool类型&#xff1a;存储真值 true 或假值 false&#xff0c;C语言编译器C99以上支持。 C语言的bool类型&#xff1a;要添加 #include <stdbool.h>头文件 #includ…...

MCK主机加固与防漏扫的深度解析

在当今这个信息化飞速发展的时代&#xff0c;网络安全成为了企业不可忽视的重要议题。漏洞扫描&#xff0c;简称漏扫&#xff0c;是一种旨在发现计算机系统、网络或应用程序中潜在安全漏洞的技术手段。通过自动化工具&#xff0c;漏扫能够识别出系统中存在的已知漏洞&#xff0…...

《软件估算之原始功能点:精准度量软件规模的关键》

《软件估算之原始功能点&#xff1a;精准度量软件规模的关键》 一、软件估算的重要性与方法概述二、原始功能点的构成要素&#xff08;一&#xff09;数据功能&#xff08;二&#xff09;事务功能 三、原始功能点的估算方法&#xff08;一&#xff09;功能点分类估算&#xff0…...

序列化与反序列化

序列化和反序列化是数据处理中的两个重要概念&#xff0c;它们在多种场景下都非常有用&#xff0c;尤其是在分布式系统、网络通信、持久化存储等方面。下面是对这两个概念的详细解释&#xff1a; 序列化&#xff08;Serialization&#xff09; 定义&#xff1a;序列化是将对象…...

安装nginx实现多ip访问多网站

[rootlocalhost ~]# systemctl stop firewalld 关防火墙 [rootlocalhost ~]# setenforce 0 关selinux [rootlocalhost ~]# mount /dev/sr0 /mnt 挂载点 [rootlocalhost ~]# dnf install nginx -y 安装nginx [rootlocalhost ~]# nmtui 当前主机添加多地址 [rootlocal…...

每日回顾:简单用C写 冒泡排序、快速排序

冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它通过重复遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行直到没有再需要交换&#xff0c;也就是说该数列已…...

前端_007_Axios库

文章目录 配置响应结构拦截器 引入&#xff1a; 官网&#xff1a; https://www.axios-http.cn/ 一句话简介&#xff1a;浏览器里基于XmlHttpRequests&#xff0c;node.js里基于http模块封装的网络请求库&#xff0c;使用非常方便 //通用例子axios({method:post,url: request…...

NAND FLASH 与 SPI FLASH

面试的时候再有HR针对从数据手册开始做&#xff0c;直接说明&#xff1a;例如RK3588等高速板设计板都有设计指导书&#xff0c;基本把对应的DDR等型号和布局规范都说明&#xff0c;或者DCDC电路直接给一个典型设计原理图&#xff0c;或者BMS更加经典&#xff0c;原理图给的是最…...

QTCreator打不开双击没反应

问题描述 双击后进程里显示有,当过几秒直接消失 解决 找到C\用户\AppData\Roaming\QtProject&#xff0c;删除目录下QtCreator.ini文件&#xff08;这会重置QtCreator的默认设置&#xff09;&#xff0c;再打开QtCreator时会自动生成对应于默认设置的QtCreator.ini文件&…...

vue npm run ...时 报错-系统找不到指定的路径

vue项目修改时&#xff0c;不知道那一步操作错误了&#xff0c;运行npm run …时报错 系统找不到指定的路径&#xff0c;对此进行记录一下&#xff01; 解决方法&#xff1a; 1、执行 npm install 命令&#xff0c;重新下载模块 2、根据下方提示执行 npm fund 查看详细信息 …...

54页可编辑PPT | 大型集团企业数据治理解决方案

这份PPT是关于大型集团企业数据治理的全面解决方案&#xff0c;它详细介绍了数据治理的背景、需求、管理范围、框架、解决思路&#xff0c;以及数据治理在实际操作中的关键步骤。内容涵盖了数据架构、数据质量、数据应用等方面的问题&#xff0c;并提出了数据资产透视、智能搜索…...

STM32嵌入式移植GmSSL库

前言 最近在做一个换电柜的项目&#xff0c;需要和云端平台对接json协议&#xff0c;由于服务端规定了&#xff0c;需要采用sm2 sm3 sm4用来加密。在嵌入式方面只能用北京大学的GmSSL了。 下载GmSSL 在https://github.com/guanzhi/GmSSL下载库 也可以通过git命令下载&#x…...

【mod分享】极品飞车10高清模组,,全新道路,全新建筑,高清植被,全新的道路围栏,全新的天空,画质直逼极品飞车20。支持光追

各位好&#xff0c;今天小编给大家带来一款新的高清重置魔改MOD&#xff0c;本次高清重置的游戏叫《极品飞车10卡本峡谷》。 《极品飞车10&#xff1a;卡本峡谷》该游戏可选择四个模式&#xff1a;生涯、快速比赛、挑战赛、多人连线游戏模式&#xff08;已不可用&#xff09;&…...

使用U-KAN训练自己的数据集 — 医疗影像分割

<U-KAN Makes Strong Backbone for Medical Image Segmentation and Generation> U-Net已成为各种视觉应用的基石,如图像分割和扩散概率模型。虽然通过整合变压器或mlp引入了许多创新设计和改进,但网络仍然局限于线性建模模式以及缺乏可解释性。为了应对这些挑战,受到…...

Ubuntu 18.04双网卡实战:5分钟搞定内网穿透+NAT转发(含DHCP自动分配)

Ubuntu 18.04双网卡配置全指南&#xff1a;从内网穿透到自动化管理 在实验室环境或小型办公网络中&#xff0c;经常需要一台主机同时连接内外网。Ubuntu 18.04作为长期支持版本&#xff0c;其网络功能稳定可靠&#xff0c;特别适合作为网关设备。本文将手把手教你如何配置双网卡…...

10分钟上手!Java开发者也能轻松调用AI,Spring AI Alibaba手把手教你构建智能体!

介绍&#xff1a;还在羡慕Python开发者能轻松调用AI&#xff1f;Spring AI Alibaba让Java也能10分钟构建一个能“思考”和“行动”的智能体&#xff0c;这次手把手教&#xff01; 系统&#xff1a;Windows jdk版本&#xff1a;17 maven&#xff1a;3.8 模型API Key&#xff1a…...

Java Web 新冠物资管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 新冠疫情的爆发对全球公共卫生体系提出了严峻挑战&#xff0c;物资管理成为疫情防控中的关键环节。传统物资管理方式依赖人工操作&#xff0c;效率低下且易出错&#xff0c;难以应对突发公共卫生事件中的大规模物资调配需求。为解决这一问题&#xff0c;新冠物资管理系统应…...

Python将Parquet文件转换为JSONL格式文件

prompt:如何使用 Python 将 Parquet 文件转换为 JSONL 格式文件&#xff1f; 请提供完整的代码示例&#xff0c;包括使用 pandas 或 pyarrow 读取 Parquet 文件&#xff0c; 并将每行数据以 JSON 格式逐行写入 JSONL 文件的实现方式。 假设 Parquet 文件包含结构化数据&#xf…...

影墨·今颜小红书模型与Claude Code的协同编程应用设想

影墨今颜小红书模型与Claude Code的协同编程应用设想 最近在琢磨一个挺有意思的组合&#xff1a;让擅长生成代码的Claude Code和专门为小红书内容优化的影墨今颜模型一起干活。听起来有点跨界&#xff0c;但仔细想想&#xff0c;这俩搭档起来&#xff0c;说不定能解决不少实际…...

vLLM 5.0.4 实战:从参数解析到批量推理的性能调优指南

1. vLLM 5.0.4核心参数解析与实战配置 初次接触vLLM时&#xff0c;最让人头疼的就是那一长串参数列表。我在实际项目中使用Meta-Llama-3.1-8B-Instruct模型时&#xff0c;就曾因为参数配置不当导致显存爆炸。下面分享几个关键参数的实战经验&#xff1a; LLM类参数中的max_mode…...

毫米波雷达测速的“火眼金睛”:从汽车ACC到手势识别,Doppler FFT如何分辨不同速度的目标?

毫米波雷达测速的“火眼金睛”&#xff1a;从汽车ACC到手势识别&#xff0c;Doppler FFT如何分辨不同速度的目标&#xff1f; 在自动驾驶汽车的前方&#xff0c;一辆卡车突然减速&#xff0c;而右侧车道有摩托车正在加速超车——毫米波雷达如何在这复杂的场景中&#xff0c;准确…...

brpc跨平台构建自动化:Jenkins与GitHub Actions终极指南

brpc跨平台构建自动化&#xff1a;Jenkins与GitHub Actions终极指南 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recomm…...

Python边缘部署不是“复制粘贴”!12个生产环境真实报错日志溯源分析(附可复用诊断矩阵表)

第一章&#xff1a;Python边缘部署的本质认知与误区破除Python边缘部署不是将桌面或服务器环境简单“搬移”到嵌入式设备&#xff0c;而是面向资源受限、实时性敏感、网络不可靠、运维通道受限等物理约束下的系统性重构。其本质是**在算力、内存、存储、功耗与可靠性之间达成动…...

RustFS集群部署避坑指南:我用Ansible踩过的3个坑及解决方案

RustFS集群部署实战&#xff1a;Ansible自动化中的三大典型问题与深度解决方案 当你在凌晨三点收到集群告警通知时&#xff0c;会不会希望当初的部署方案能更健壮些&#xff1f;作为经历过数十次生产环境部署的老兵&#xff0c;我想分享那些官方文档不会告诉你的实战经验。本文…...