100天精通鸿蒙从入门到跳槽——第5天:TypeScript 知识储备:函数

在这里插入图片描述


博主猫头虎的技术世界

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

专栏链接

🔗 精选专栏

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

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

  • 100天精通鸿蒙从入门到跳槽——第5天:TypeScript 知识储备:函数
      • 🌟 摘要
      • 📘 一、引言
      • 📝 二、正文
        • 1️⃣ 函数声明
        • 2️⃣ 函数参数
        • 3️⃣ 函数返回值
        • 4️⃣ 函数重载
        • 5️⃣ 箭头函数
        • 6️⃣ 函数类型别名
        • 7️⃣ 函数类型保护
        • 8️⃣ 函数类型断言
      • 📊 三、总结
      • 📚 四、参考资料

100天精通鸿蒙从入门到跳槽——第5天:TypeScript 知识储备:函数

在这里插入图片描述

🌟 摘要

在探索鸿蒙精通之旅的第5天,我们深入了解TypeScript —— JavaScript的超集,它增添了静态类型检查的强大功能。本篇博客专注于TypeScript中的函数特性,覆盖了函数声明、参数、返回值、重载、箭头函数、类型别名、类型保护和类型断言等关键概念。通过本文,读者将能够提升代码质量,使其更加健壮和可维护。不仅适用于鸿蒙开发,也适用于广泛的JavaScript生态系统。 关键词: TypeScript函数, 鸿蒙开发, JavaScript静态类型, 代码质量提升, 可维护代码。

📘 一、引言

JavaScript作为当今最流行的编程语言之一,其代码质量、可读性和可维护性受到了广泛关注。🔍

为此,TypeScript 应运而生,给JavaScript的世界带来了类型安全。

TypeScript 的引入不仅增强了代码的清晰度和简洁性,也提高了维护性。

本文将针对TypeScript中的函数特性进行详细讲解,旨在帮助读者精通这些重要的概念。

📝 二、正文

1️⃣ 函数声明
  • TypeScript 中,使用 function 关键字声明函数。这包括函数名、参数列表和返回类型。
function greet(name: string): void {console.log(`Hello, ${name}!`);
}
2️⃣ 函数参数
  • 函数参数可以是明确命名的(如 name: string),也可以是匿名的(如 arg: any)。
function greet(name: string): void {console.log(`Hello, ${name}!`);
}greet("World"); // 输出 "Hello, World!"
3️⃣ 函数返回值
  • 函数返回值可以有明确的类型(如 number),也可以没有类型(如 void)。
function add(a: number, b: number): number {return a + b;
}console.log(add(1, 2)); // 输出 3
4️⃣ 函数重载
  • 函数重载允许同一函数名支持多种参数列表和返回类型。
function greet(name: string): void {console.log(`Hello, ${name}!`);
}function greet(name: number): void {console.log(`Hello, ${name}!`);
}greet("World"); // 输出 "Hello, World!"
greet(42); // 输出 "Hello, 42!"
5️⃣ 箭头函数
  • 箭头函数提供了一种更简洁的函数声明方式,使得代码更加紧凑。
let add = (a: number, b: number): number => a + b;console.log(add(1, 2)); // 输出 3
6️⃣ 函数类型别名
  • 函数类型别名允许为函数类型定义一个新的名字。
type AddFunction = (a: number, b: number) => number;let myAdd: AddFunction = (a, b) => a + b;console.log(myAdd(1, 2)); // 输出 3
7️⃣ 函数类型保护
  • 函数类型保护用于在函数内部检查参数类型,确保类型安全。
function isString(value: any): value is string {return typeof value === "string";
}if (isString("foo")) {console.log("The value is a string.");
}
8️⃣ 函数类型断言
  • 函数类型断言用于强制将变量视为特定函数类型。
let myVariable: any = "Hello, World!";
console.log((myVariable as string).toUpperCase()); // 输出 "HELLO, WORLD!"

📊 三、总结

在这篇技术博客中,我们深入探讨了TypeScript的函数特性,覆盖了从基础的函数声明到复杂的类型保护与断言等多方面内容。通过这些深入的解析,开发者们不仅能在鸿蒙开发领域中灵活运用TypeScript,还能显著提升代码的健壮性、可维护性和清晰度。掌握这些技能,对于追求高质量代码的程序员来说,无疑是一项宝贵的资产。

🔍 接下来的探索

如果你对TypeScript和鸿蒙开发充满兴趣,不要错过我们的下一篇博客:“100天精通鸿蒙——第6天:深入探讨TypeScript中的类 ”。在那里,我们将继续探索TypeScript的高级特性,帮助你进一步提升开发技能。🌟

👉 点击这里继续阅读下一篇


我们期待与您一起在鸿蒙开发的旅程中不断成长和探索新的高度!🚀💡🌐

📚 四、参考资料

  1. TypeScript 官方文档:https://www.typescriptlang.org/docs/handbook/2/functions.html
  2. TypeScript Playground:https://www.typescriptlang.org/play
  3. TypeScript 学习网站:https://ts.shoutem.com/
  4. TypeScript 教程:https://www.runoob.com/typescript/typescript-tutorial.html

🔖 标签: #TypeScript #函数编程 #鸿蒙开发 #代码质量 #技术博客 #程序员成长


感谢阅读!希望本文对您的鸿蒙开发之旅有所帮助。🌈💻🚀

在这里插入图片描述

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

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

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

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

💡 联系与版权声明

📩 联系方式

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

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

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


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

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

相关文章

群晖NAS搭建WebDav结合内网穿透实现公网访问本地影视资源

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

酒类销售新模式:让用户成为你的“免费“推销员!

随着市场的不断变化,传统的销售模式已经无法满足消费者的需求。如何创新商业模式,提高销售量,成为了酒类企业面临的重要问题。最近,一种新型的酒类销售模式悄然兴起,该模式以"利己"和"利他"为核心…

用sdkman在linux上管理多个java版本

概述: SDKMAN 是一个用于管理软件开发工具的工具,允许您轻松地安装、升级和切换不同版本的 JDK、Maven、Gradle 等工具。以下是在 Linux 上安装 SDKMAN! 的基本步骤: 安装SdkMan 使用 curl 安装 SDKMAN!: 打开终端,并运行以下命…

axios的原理及源码解析

面试官:你了解axios的原理吗?有看过它的源码吗? 一、axios的使用 关于axios的基本使用,上篇文章已经有所涉及,这里再稍微回顾下: 发送请求 import axios from axios;axios(config) // 直接传入配置 axio…

web3.0基本概念简析

web3.0概念简析 web3.0的发展史 web1.0 仅用于展示,无法进行点赞评论等交互 web2.0 不仅可以展示,还可以上传视频、图片等,用户可以参与创作内容并获取收益。但还是中心化的模型 缺点 1 机械化的人机验证 2 账户安全无法保证 多年未登陆…

Elasticsearch8 集群搭建(二)配置篇:(1)节点和集群配置

安装完Elasticsearch后,需要对其进行配置,包括以下几部分:节点和集群配置、系统配置、安全配置。 此篇记录节点和集群配置的内容,后续将更新系统配置和安全配置。 节点和集群配置: 通过编辑/usr/local/elasticsearc…

跨站点请求伪造攻击 - Cross Site Request Forgery (CSRF)

什么是CSRF 最好理解CSRF攻击的方式是看一个具体的例子。 假设你的银行网站提供一个表单,允许当前登录用户将钱转账到另一个银行账户。例如,转账表单可能如下所示: <form method="post"action="/transfer"> <

Tensorflow2.0笔记 - 基础数学运算

本笔记主要记录基于元素操作的,-,*,/,//,%,**,log,exp等运算&#xff0c;矩阵乘法运算&#xff0c;多维tensor乘法相关运算 import tensorflow as tf import numpy as nptf.__version__#element-wise运算&#xff0c;对应元素的,-,*,/,**,//,% tensor1 tf.fill([3,3], 4) ten…

虚化边框背景,让视频不再单调乏味

在繁忙的都市中&#xff0c;我们每天都在为了生活而奔波。有时&#xff0c;我们希望有一个地方&#xff0c;可以让我们暂时远离喧嚣&#xff0c;沉浸在自己的小世界里。而现在&#xff0c;有了这款全新的视频编辑软件——视频剪辑高手&#xff0c;你不仅可以轻松制作出专业级的…

Docker篇之修改docker默认磁盘占用目录

一、前言 通常情况下&#xff0c;当我们默认安装docker服务时&#xff0c;在不指定默认存储路径时&#xff0c;docker会自动创建目录&#xff0c;经常会出现打满根目录的情况。 默认存储路径为&#xff1a;/var/lib/docker 下 可通过如下进行查询&#xff1a; docker info输出…

易飞ERP抛转钉钉签核,并自动审核易飞单据

支持易飞ERP所有单据送签到钉钉 &#xff08;v: rainholy&#xff09; 1、钉钉界面 2、易飞ERP单据配置 3、钉钉审批完后&#xff0c;自动审核易飞ERP单据

技术视角看Metis未来发展潜力

基本情况 Metis是Optimistic Rollup开发的layer2,于21年主网上线,是最早的上线Rollup的二层网络。并于24年升级为将Optimistic Rollup 架构与零知识证明zk相结合的Hybrid Rollup。 排序器现状 对于每个layer2,用户的交易数据都需要传输到主网ETH上。原则上,用户的交易数…

手把手教你写 Compose 动画 -- 状态转移型动画 API:animate*AsState()

Jetpack Compose 提供了一系列功能强大且可扩展的 API&#xff0c;可用于在应用界面中轻松实现各种动画效果。这一系列文章会逐个介绍所有的动画 API&#xff0c;通过最直观的 Demo 示例&#xff0c;手把手教你怎么写动画以及带你了解动画背后的原理。 &#x1f4d1; 手把手教你…

Unreal Engine(UE5)中构建离线地图服务

1. 首先需要用到3个软件&#xff0c;Unreal Engine&#xff0c;gis office 和 bigemap离线服务器 Unreal Engine下载地址:点击前往下载页面 Gis office下载地址:点击前往下载页面 Bigemap离线服务器 下载地址: 点击前往下载页面 Unreal Engine用于数字孪生项目开发&#x…

4种方法用Python批量实现多Excel多Sheet合并

目录 方法一&#xff1a;使用pandas库 方法二&#xff1a;使用openpyxl库 方法三&#xff1a;使用xlrd和xlwt库 方法四&#xff1a;使用os和glob库 在数据处理中&#xff0c;经常需要将多个Excel文件中的多个工作表进行合并。以下介绍了4种方法&#xff0c;使用Python批量实…

js数组长度不够补0 且 够的话则截取到期望长度

当我们需要处理数组的长度不够的情况时&#xff0c;可以通过补0来完成&#xff1b;数组长度够的情况下&#xff0c;需要截取期望的长度。 在示例代码中&#xff0c;我们定义了一个函数padArrZeroSubLength 它接受两个参数&#xff1a;原始数组和期望的长度。 1&#xff09;函…

【Android】为什么在子线程中更新UI不会抛出异常

转载请注明来源&#xff1a;https://blog.csdn.net/devnn/article/details/135638486 前言 众所周知&#xff0c;Android App在子线程中是不允许更新UI的&#xff0c;否则会抛出异常&#xff1a; android.view.ViewRootImpl$CalledFromWrongThreadException: Only the origin…

【Ubuntu18.04安装Labelme】

Ubuntu18.04安装Labelme 1 安装Anaconda并创建conda环境2 安装依赖3 安装Labelme4 安装验证 1 安装Anaconda并创建conda环境 Anaconda3安装教程&#xff1a;https://blog.csdn.net/dally2/article/details/108206234 "ctrlaltt"快捷键打开终端&#xff0c;创建conda…

数据机房中智能小母线与列头柜方案的对比分析

0引言 近年来&#xff0c;我国信息技术行业发展十分迅猛&#xff0c;得益于国家政策的大力支持&#xff0c;政府金融、互联网公司、运营商等客户都在不断地新建和升级数据中心&#xff0c;以匹配其数据业务的增长速度。我国数据中心IT市场一直保持着连续快速增长的态势。国内数…

橘子学Mybatis07之Mybatis关于缓存的设计

很逆天的一件事是&#xff0c;我上一次发mybatis是在2022年10月15号&#xff0c;然后直到今天才开始总结下一篇Mybatis的东西。一年里面忙成那啥了&#xff0c;而且重心都投入在了Elasticsearch的学习上面&#xff0c;基本一年下来都在搞ES&#xff0c;并且考下了ECE认证&#…