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.hqwc.cn/news/417329.html

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

相关文章

k8s---配置资源管理

目录 配置资源管理的方式 secret pod如何来引用secret&#xff1f;&#xff1f;&#xff1f; 陈述式创建&#xff1a; 声明式创建 Secret创建加密文件 使用token挂载 环境变量使用 docker-registry ConfigMap 陈述式 热更新 总结&#xff1a; 配置资源管理的方式 …

开发知识点-JAVA-springboot

springboot springbootConfiguration注解的底层核心原理Bean注解的底层核心原理 springboot Configuration注解的底层核心原理 https://www.bilibili.com/video/BV1rq4y1E7gK/?spm_id_from333.999.0.0&vd_sourcef21773b7086456ae21a58a6cc59023be spring.io 全家桶 24…

ETL概念

ETL ETLELT 技术原理ETL 模式应用场景常见工具ETL未来发展方向 ETL 在BI项目中ETL会花掉整个项目至少1/3的时间&#xff0c; ETL设计的好坏直接关接到BI项目的成败。ETL(Extract-Transform-Load) : 用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&…

怎么解决离散型制造业中的7大浪费

企业在生产管理中会产生各种浪费&#xff0c;MES可以巧妙结合精益化生产管理思想消除这些浪费。离散制造中的7大浪费&#xff1a; 1、生产不良 生产过程中出现废品、次品这类质量问题&#xff0c;一方面会消耗原材料、零部件等&#xff0c;另一方面生产、返修过程也会消耗人工…

SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换

场景 SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源&#xff1a; SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源-CSDN博客 上面实现通过注解和配置文件的方式去进行多数据源操作。 如果业务需求&#xff0c;比…

第一篇【传奇开心果系列】beeware开发移动应用:轮盘抽奖移动应用

系列博文目录 beeware开发移动应用示例系列博文目录一、项目目标二、开发传奇开心果轮盘抽奖安卓应用编程思路三、传奇开心果轮盘抽奖安卓应用示例代码四、补充抽奖逻辑实现五、开发传奇开心果轮盘抽奖苹果手机应用编程思路六、开发传奇开心果轮盘抽奖苹果手机应用示例代码七、…

linux java 8安装

tar -zxf jdk-8u***.tar.gz -C /usr/loacl/ vim /etc/profile i 输入 export JAVA_HOME/usr/local/安装文件名 export PATH${JAVA_HOME}/bin:$PATH ESC :wq 保存退出 source /etc/profile 验证 java -version

【论文阅读】ControlNet、文章作者 github 上的 discussions

文章目录 IntroductionMethodControlNetControlNet for Text-to-Image DiffusionTrainingInference Experiments消融实验定量分析 在作者 github 上的一些讨论消融实验更进一步的探索Precomputed ControlNet 加快模型推理迁移控制能力到其他 SD1.X 模型上其他 Introduction 提…

AWTK 开源串口屏开发(7) - 屏幕保护

现代屏幕其实并不需要屏幕保护&#xff0c;不过屏幕保护程序会衍生一些其它用途。比如&#xff1a; 保护隐私。长时间不操作&#xff0c;通过动画或者其它方式隐藏屏幕内容。数据安全。长时间不操作&#xff0c;需要输入密码才能恢复。美观/广告。长时间不操作&#xff0c;显示…

揭秘!微信高效群发的方法,轻松提升转化率

微信作为一个维护客户关系和营销推广产品与服务的重要平台&#xff0c;对于企业和个人来说都具有非常大的价值。然而&#xff0c;如何高效地给客户群发消息&#xff0c;提高转化率&#xff0c;却是一个让很多人头疼的问题。 下面就给大家介绍几个小技巧&#xff0c;帮助大家实…

tidb Cloud 连接spring boot 项目

一、 免费试用tidbitcloud TiDB Cloud Documentation | PingCAP Docs 1.github账号登录 2.创建集群 3.点击对应集群cludter0 导入数据 导入 本地导入只支持csv文件&#xff0c;其他导入需要AWZ账号使用S3云存储 二、连接spingboot项目 选择java&#xff0c;复制下面的jd…

智汇云舟创始人兼总裁周舟:视频孪生赋能智慧城市多元场景建设

1月18日&#xff0c;由知名科技媒体和产业智库泰伯网主办的WIF2023创新先行者论坛暨企业家会员年会于北京成功举办。共有百余位科技公司创始人、管理者、投资人齐聚&#xff0c;研判产业经济趋势&#xff0c;寻找新形势下企业未来发展的新方向、新机会。智汇云舟创始人兼总裁周…