HarmonyOS开发准备(一) TypeScript基本语法

HarmonyOS开发准备(一) TypeScript基本语法

TypsScript官网:https://www.typescriptlang.org/play

可在官网 Playround 在线运行 Typescript

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一、变量声明

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

// 创建 number(数值) 类型变量
let test_number: number = 111
console.log('test_number:', test_number)
console.log(typeof(test_number))// 创建 string(字符串) 类型变量
let test_string: string = '222'
console.log('test_string:', test_string)
console.log(typeof(test_string))// 创建 boolean(布尔) 类型变量
let test_bool: boolean = true
console.log('test_bool:', test_bool)
console.log(typeof(test_bool))// 创建 any(不检查类型,可任意类型,一般适用在函数参数声明) 变量类型
let test_any: any = 34234
console.log('test_any:', test_any)
console.log(typeof(test_any))// 创建 function(默认类型) 变量类型
let test_function = function () {console.log('我是function')
}
console.log('test_function :', test_function )
console.log(typeof(test_function))// 创建 union(联合,指定多个类型中其中一个即可) 变量类型
let test_union: number|string|boolean = true
console.log('test_union:', test_union)
console.log(typeof(test_union))// 创建 object(对象) 变量类型
let test_object: object = {name: '刘', age: '男'}
console.log('test_object:', test_object)
console.log(typeof(test_object))// 创建 array(数组) 变量类型
let test_array1: string[] = ['我', '是', '数组']
let test_array2: Array<number> = [1, 2, 3]
console.log('test_array1:', test_array1)
console.log('test_array2:', test_array2)
console.log(typeof(test_array1))
console.log(typeof(test_array2))

二、条件控制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1、if-else 判断
let num: number = 2if(num % 2 === 0){console.log('偶数')
}else{console.log('奇数')
}if(num > 0){console.log('正数')
}else if(num < 0){console.log('负数')
}else{console.log("为0")
}
2、switch 判断
let word: string = 'A'switch (word) {case 'A':console.log('结果为A')breakcase 'B': console.log('结果为B')breakcase 'C':console.log('结果为C')breakdefault:console.log('非法输入')break
}

三、循环迭代

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1、for / while 普通循环
// for 循环
for(let i = 1; i <= 10; i++){console.log(`点赞${i}`)
}// while 循环
let i = 1
while(i <= 10){console.log(`点赞${i}`)i++
}
2、for in / for of 迭代器循环
let nameList1: string[] = ['liu', 'guan', 'zhang']
let nameList2: Array<string> = ['liu', 'guan', 'zhang']// for in 迭代器循环
for(let i in nameList1){console.log(`i:${i}${nameList1[i]}`)
}// for of 迭代器循环
for(let name of nameList2){console.log(`name:${name}`)
}

四、函数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

// 无返回值函数,返回值 void 可以省略
function testHello(name: string): void{console.log(`您好${name}!`)
}
testHello('liu')// 有返回值函数
function sum1(x: number, y: number): number {return x + y
}
let result1 = sum1(5, 5)
console.log(`5 + 5 = ${result1}`)// 箭头函数:无返回值
let testHi = (name: string): void => {console.log(`你好${name}!`)
}
testHi('guan')// 箭头函数:有返回值
let sum2 = (x: number, y: number): number => {return x + y
}
let result2 = sum1(15, 15)
console.log(`15 + 15 = ${result2}`)// 可选参数,在参数名后面加 ?,表示是可选的
function fun1(name?: string){name = name ? name : '陌生人'console.log(`你好${name}!`)
}
fun1('liu')
fun1()// 参数默认值,在参数后面赋值,表示参数默认值
// 如果调用没有传参,则使用默认值
function fun2(name: string = '陌生人'){console.log(`你好${name}!`)
}
fun2('guan')
fun2()

五、类和接口

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1、简单使用枚举和类、接口
// 定义枚举
enum Msg {HI = 'Hi',HELLO = 'Hello'
}// 定义接口,抽象方法接收枚举参数
interface A {say(msg: Msg): void
}// 实现接口
class B implements A {say(msg: Msg): void {console.log(`msg,I am B`)}
}// 初始化对象
let a: A = new B()
// 调用方法,传递枚举参数
a.say(Msg.HI)
2、枚举和类、接口全面使用
// 定义矩形类
class Rectangle {// 成员变量private width: numberprivate height: number// 构造函数constructor(widht: number, height: number) {this.width = widhtthis.height = height}// 成员方法public area(): number {return this.width + this.height}
}// 定义正方形,继承 Rectangle 类
class Square extends Rectangle {constructor(side: number) {// super:调用父类构造super(side, side)}
}// 初始化对象
let s = new Square(10)
// 调用父类方法
console.log(`正方形面积为:${s.area()}`)

模块开发

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
xtends Rectangle {
constructor(side: number) {
// super:调用父类构造
super(side, side)
}
}

// 初始化对象
let s = new Square(10)
// 调用父类方法
console.log(正方形面积为:${s.area()})


### 模块开发[外链图片转存中...(img-rThTNF4o-1701334023011)] 

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

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

相关文章

Leetcode—35.搜索插入位置【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—35.搜索插入位置 实现代码 int lower_bound(int* arr, int numsSize, int tar) {int left 0, right numsSize;int mid;// 左闭右开[left, right)while(left < right) {mid left (right - left) / 2;if(arr[mid] &…

如何去选择合适的线缆测试仪?CAT8网线认证测试

如何去选择合适的线缆测试仪? 如果你是第三方检测单位&#xff0c;系统集成商&#xff0c;或者线缆生产厂家&#xff0c;我个人建议选择福禄克DSX系列无疑是比较保险的做法&#xff0c;因为考虑到福禄克在国内耕耘多年所积累起来的品牌知名度和口碑&#xff0c;选择一款大家都…

解读免费化潮流:为何数据可视化软件向免费迈进?

近年来&#xff0c;我们见证了数据可视化软件呈现出明显的免费化趋势。这个趋势的背后隐藏着许多关键原因&#xff0c;影响着整个数据行业的发展和走向。为何数据可视化软件开始朝着免费方向发展&#xff1f;让我们一同深入探讨。 普及数字化需求&#xff1a; 数字化已经深入到…

易宝OA ExecuteSqlForSingle SQL注入漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台&#xff0c;具有信息管理、 流程管理 、知识管理&#xff08;档案和业务管理&#xff09;、协同办公等多种功能。 0x02 漏洞概述 易宝OA ExecuteSqlForSingle接口处存在SQL注入漏洞&a…

老师旁听公开课到底听什么

经常参加公开课是老师提升自己教学水平的一种方式。那么&#xff0c;在旁听公开课时&#xff0c;老师应该听什么呢&#xff1f; 听课堂氛围 一堂好的公开课&#xff0c;应该能够让学生积极参与&#xff0c;课堂气氛活跃&#xff0c;而不是老师一个人唱独角戏。如果老师能够引导…

封装进度条onUploadProgress+axios取消请求的上传组件

目录 定时模拟进度条 方法 A.axios B.xhr 取消请求 完整代码 A.自定义上传组件 B.二次封装组件 情况 增加cancelToken不生效&#xff0c;刷新页面 进度条太快->设置浏览器网速 定时模拟进度条 startUpload() {if (!this.file) return;const totalSize this.fil…

共享办公室平台和普通品牌之间存在哪些区别?三个角度告诉你答案

共享办公室平台是一种新兴的办公模式&#xff0c;它与传统的办公品牌有很多不同之处&#xff0c;主要可以从以下几个角度进行分析&#xff1a; 空间使用&#xff1a;共享办公室平台是一种基于共享经济理念的办公方式&#xff0c;它将空间、设施、服务等资源进行整合和优化&…

家电产品扇叶零部件自动化三维检测设备高精度3D测量系统-CASAIM-IS(2ND)

一、背景介绍 某家电制造商希望对其生产的家电产品零部件进行高精度的3D测量&#xff0c;以确保零部件的尺寸精度和质量符合严格的标准&#xff0c;零部件的形状复杂且多样化&#xff0c;对于一些细节部位的测量精度要求极高。本文将介绍CASAIM-IS&#xff08;2ND&#xff09;…

【目标检测】进行实时检测计数时,在摄像头窗口显示实时计数个数

这里我是用我本地训练的基于yolov8环境的竹签计数模型&#xff0c;在打开摄像头窗口增加了实时计数显示的代码&#xff0c;可以直接运行&#xff0c;大家可以根据此代码进行修改&#xff0c;其底层原理时将检测出来的目标的个数显示了出来。 该项目链接&#xff1a;【目标检测…

【JMeter】菜单栏介绍

【菜单栏】 1. Tools 导入curl接口信息 作用&#xff1a;快速导入接口信息&#xff0c;响应头和缓存信息等 Log level临时修改日志等级 作用&#xff1a; 从勾选的level开始往更高等级level抓取log日志等级优先级&#xff1a; ALL < TRACE < DEBUG <INFO<WA…

Flutter应用程序加固的问题及解决方案

​&#x1f680;Flutter应用程序加固的问题及解决方案引言在移动应用开发中&#xff0c;为了保护应用程序的安全性&#xff0c;开发者需要对应用进行加固。在使用Flutter技术进行应用程序开发时&#xff0c;也需要注意应用程序的安全问题和加固方案。本文将介绍在Flutter应用程…

【JavaEE初阶】 详解HTTPS协议加密过程

文章目录 &#x1f334;HTTPS协议是什么&#xff1f;&#x1f384;运营商劫持事件&#x1f38b;HTTPS的工作过程&#x1f6a9;对称加密&#x1f6a9;非对称加密&#x1f6a9;引入证书&#x1f6a9;完整流程 &#x1f333;HTTPS加密总结⭕总结 &#x1f334;HTTPS协议是什么&…