100天精通鸿蒙从入门到跳槽——第8天:TypeScript 知识储备:泛型

在这里插入图片描述


博主猫头虎的技术世界

🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!

专栏链接

🔗 精选专栏

  • 《面试题大全》 — 面试准备的宝典!
  • 《IDEA开发秘籍》 — 提升你的IDEA技能!
  • 《100天精通Golang》 — Go语言学习之旅!
  • 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!

100天精通鸿蒙OS(基础篇)

  • 100天精通鸿蒙从入门到跳槽——第8天:TypeScript 知识储备:泛型
    • 摘要💫
    • 一、引言💥
    • 二、正文🎉
      • 1. 泛型定义🧧
      • 2. 泛型参数
      • 3. 泛型约束🪅
      • 4. 泛型类型保护🧸
      • 5. 泛型与接口结合🛼
    • 三、总结🎢
    • 四、参考资料🏛

100天精通鸿蒙从入门到跳槽——第8天:TypeScript 知识储备:泛型

在这里插入图片描述

摘要💫

TypeScript 中,泛型是一种通用的编程概念,它允许开发者编写可以处理不同类型的代码。泛型允许开发者编写更加灵活和可重用的代码,从而提高代码的可维护性和可扩展性。

本文将介绍 TypeScript 中的泛型类型,包括泛型的定义、泛型参数、泛型约束和泛型类型保护等。通过掌握这些知识,我们可以更好地使用 TypeScript 的功能,创建更加高效、安全和可靠的代码。

一、引言💥

随着 JavaScript 的广泛应用,开发人员越来越关注代码质量、可读性和可维护性。为了解决这些问题,TypeScript 应运而生。它为 JavaScript 添加了更多的类型信息,使得代码更加清晰、简洁和可维护。在 TypeScript 中,泛型是一种通用的编程概念,它允许开发者编写可以处理不同类型的代码。泛型允许开发者编写更加灵活和可重用的代码,从而提高代码的可维护性和可扩展性。

二、正文🎉

1. 泛型定义🧧

使用 <> 符号声明泛型。

function identity<T>(arg: T): T {return arg;
}const result = identity<string>("World");
console.log(result); // 输出 "World"

2. 泛型参数

泛型参数用 TU 等字母表示,表示泛型类型。

function identity<T>(arg: T): T {return arg;
}const result = identity<string>("World");
console.log(result); // 输出 "World"

3. 泛型约束🪅

泛型参数可以添加类型约束,以便限制泛型类型。

function identity<T extends string>(arg: T): T {return arg;
}const result = identity<string>("World");
console.log(result); // 输出 "World"const error = identity<number>("World"); // 编译错误

4. 泛型类型保护🧸

泛型类型保护允许在运行时检查泛型参数的类型。

function identity<T>(arg: T): T {if (arg instanceof Array) {return arg.join(",");}return arg;
}const result = identity<string>("World");
console.log(result); // 输出 "World"const result2 = identity<string[]>("World,Hello");
console.log(result2); // 输出 "World,Hello"

5. 泛型与接口结合🛼

泛型可以与接口结合使用,以提供对象的结构定义。

interface GenericIdentityFn<T> {(arg: T): T;
}function identity<T>(arg: T): T {return arg;
}const myIdentity: GenericIdentityFn<string> = identity;
const result = myIdentity("World");
console.log(result); // 输出 "World"

三、总结🎢

通过本文,我们了解了 TypeScript 中泛型类型的基本概念,包括泛型的定义、泛型参数、泛型约束和泛型类型保护等。掌握这些知识,我们可以更好地使用 TypeScript 的功能,创建更加高效、安全和可靠的代码。

四、参考资料🏛

TypeScript 官方文档:https://www.typescriptlang.org/docs/handbook/2/generics.html

在这里插入图片描述

👉 更多信息:对《100天精通鸿蒙》专栏感兴趣吗?别忘了点击文末名片或者下方链接加入我们的学习群。我是猫头虎博主,期待与您的交流! 🦉💬
领域矩阵

🌐 猫头虎技术领域矩阵
深入探索各技术领域,发现知识的交汇点。了解更多,请访问:

  • 猫头虎技术矩阵
  • 新矩阵备用链接

🚀 技术栈推荐
JS, TS,ArkTS 等前端技术

💡 联系与版权声明

📩 联系方式

  • 微信: Libin9iOak
  • 公众号: 猫头虎技术团队

⚠️ 版权声明
本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请联系作者猫头虎@阿珊和她的猫

点击下方名片,加入猫头虎技术社群矩阵。与我们一起在《100天精通鸿蒙》的旅程中,探索HarmonyOS的奥秘,共同成长。


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

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

相关文章

【java常用接口】Comparator学习

文章目录 1. 常见的应用场景2. 基本使用3. 常见用法4. 高级用法5. 示例代码及解析 Comparator 是 Java 中的一个接口&#xff0c;用于定义对象之间的排序规则。它可以用于对集合中的对象进行排序&#xff0c;或者用于自定义排序算法。 1. 常见的应用场景 对集合中的对象进行排…

火速收藏!2024 新年微信红包封面领取全攻略

2024“龙”重登场&#xff01;今年有哪些令人期待的红包封面&#xff1f; 前方大批精美红包封面来袭&#xff0c;全新品牌氛围红包封面上线&#xff0c;支持品牌定制特色氛围元素&#xff0c;沉浸感受浓浓年味儿&#xff0c;收获满满惊喜&#xff01; 新年开好运&#xff0c;微…

C# .NET读取Excel文件并将数据导出到DataTable、数据库及文本

Excel文件是存储表格数据的普遍格式&#xff0c;因此能够高效地读取和提取信息对于我们来说至关重要。C#语言借助.NET Framework和各种库的广泛功能&#xff0c;能够进行高效的数据操作。利用C#读取Excel文件并将数据写入数据库和DataTable&#xff0c;或者将数据用于其他目的&…

终于懂了!医师资格证和医师执业证有啥区别

医师资格证和医师执业证的区别&#xff08;总结篇&#xff09; 1、发证单位不一样: 《医师资格证》是由国家卫生部统一发放的。 《医师执业证书》是你获得了医师资格证书后申请由当地卫生局发的。 2、意义不一样: 《医师资格证》属于医疗技术方面的认可&#xff0c;证明持证人具…

【Linux】信号量基于环形队列的生产消费模型

信号量 信号量的本质是一个计数器&#xff0c;可以用来衡量临界资源中资源数量多少 信号量的PV操作 P操作&#xff1a;申请信号量称为P操作&#xff0c;P操作的本质就是让计数器减1。 V操作&#xff1a;释放信号量称为V操作&#xff0c;V操作的本质就是让计数器加1 POSIX信号量…

[C#]winform部署官方yolov8-obb旋转框检测的onnx模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-obb&#xff08;You Only Look Once version 8 with Oriented Bounding Boxes&#xff09;是一种先进的对象检测算法&#xff0c;它在传统的Yolov3和Yolov4基础上进行了优化&#xff0c;加…

尝试着在Stable Diffusion里边使用SadTalker进行数字人制作

首先需要标明的是&#xff0c;我这里是图片说话类型&#xff0c;而且是看了知识星球AI破局俱乐部大航海数字人手册进行操作的。写下这篇文章是防止我以后遗忘。 我使用的基础软件是Stable Diffusion&#xff0c;SadTalker是作为插件放进来的&#xff0c;需要注意的是这对自己的…

RockerMQ发送消息流程

引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.1.1</version></dependency> 1. 定义RocketMQTemplateService工具类 Service public clas…

【温故而知新】HTML5 应用程序缓存

文章目录 一、HTML5二、应用程序缓存三、浏览器支持四、案例代码五、更新缓存六、热门文章 一、HTML5 HTML5是HTML的最新版本&#xff0c;它引入了许多新的元素和功能&#xff0c;以适应现代网页开发的需求。以下是HTML5的一些主要特点&#xff1a; 新增语义元素&#xff1a;…

Maven(五)如何只打包项目某个模块及其依赖模块?

目录 一、背景二、解决方案三、补充3.1 提出疑问3.2 解答 一、背景 在 SpringCloud 微服务框架下&#xff0c;会存在多个模块。当我们需要对其中某一个服务打包的时候&#xff0c;需要将该服务依赖的模块一起打包更新&#xff0c;如果项目比较小的话我们可以直接将项目中的所有…

阿里云ECS使用docker搭建mysql服务

目录 1.确保正确安装好docker 2.安装mysql镜像 3.创建容器&#xff08;设置端口映射、目录映射&#xff09; 1.确保正确安装好docker 安装教程&#xff1a; 阿里云ECS(CentOS镜像)安装docker-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135686614?spm10…

【笔记】Helm-3 主题-7 使用基于OCI的注册中心

使用基于OCI的注册中心 从Helm 3开始&#xff0c;可以使用具有 OCI 支持的容器注册中心来存储和共享chart包。从Helm v3.8.0开始&#xff0c;默认启用OCI支持。 Open Container Initiative - Open Container Initiative v3.8.0版本之前对OCI的支持 OCI支持在Helm v3.8.0版本从…

WebKit工程组织与结构随笔

1.WebKit结构 1.1 三个模块 概括地说&#xff0c;WebKit由主要由三个模块组成&#xff1a;JavaScriptCore、WebCore 和 WebKit。WebKit作为了整个项目的名称。 1). WebCore&#xff0c; 2). WebKit&#xff0c; 3). JavaScriptCore。 WebCore&#xff1a;排版引擎核心&…

【RT-DETR有效改进】华为 | Ghostnetv1一种专为移动端设计的特征提取网络

前言 大家好&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持ResNet32、ResNet101和PP…

机器学习Python7天入门计划--第一天-机器学习基础-讲人话

机器学习Python7天入门计划 - 第一天: 机器学习基础 学习目标&#xff1a; 理解机器学习的基本概念和过程。 掌握基本的数据预处理技巧。 理解线性回归的原理和应用。 学习内容&#xff1a; 机器学习基础 什么是机器学习&#xff1a;机器学习是一种使计算机能够从数据中学习规…

ssh: connect to host github.com port 22: Connection refused

ssh: connect to host github.com port 22: Connection refused 问题现象 本文以Windows系统为例进行说明&#xff0c;在个人电脑上使用Git命令来操作GitHub上的项目&#xff0c;本来都很正常&#xff0c;突然某一天开始&#xff0c;会提示如下错误ssh: connect to host gith…

浪花 - 用户信息展示+更新

1. 用户登录获取登录凭证 已登录的用户才能获取个人信息发送 Aixos 请求登录 const user ref();onMounted(async () > {const res await myAxios.get(/user/current);if (res.code 0) {console.log("获取用户信息成功");user.value res.data;} else {consol…

美易官方:美国药物价格上涨引关注

正文&#xff1a; 近期&#xff0c;美国药品市场出现了一波集体涨价的现象&#xff0c;据报道&#xff0c;在2024年1月的前半个月内&#xff0c;多家药企对其在美国市场销售的775种品牌药物进行了提价。这一消息引起了公众的广泛关注&#xff0c;尤其是对于那些依赖特定药物治…

php函数 一

一 自动加载 1.1 __autoload(string $class) 类自动加载&#xff0c;7.2版本之后废弃。可使用sql_autoload_register()注册方法实现。 类自动加载&#xff0c;无返回值。 #php7.2之前function __autoload($class) {if(strpos($class, CI_) ! 0){if (file_exists(APPPATH . …

美团跌破发行价,市值较巅峰蒸发80%!

大家好&#xff0c;我是程序员小灰。 说起美团的股票&#xff0c;不禁让我回想起一段往事。2019年初&#xff0c;当时我所在的公司摩拜科技被美团收购&#xff0c;因为自己有一些摩拜的期权&#xff0c;被收购后转换成了美团期权。 小灰很快做了行权&#xff0c;拿到了美团的股…