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.rhkb.cn/news/206568.html

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

相关文章

python爬取robomaster论坛数据,作为后端数据

一. 内容简介 python爬取robomaster论坛数据&#xff0c;作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 三.主要流程 3.1 接口分析 # 接口分析 # 全部数据 # https://bbs.robomaster.com/forum.php?modforumdisplay&fid63 2…

go学习之json和单元测试知识

文章目录 一、json以及序列化1.概述2.json应用场景图3.json数据格式说明4.json的序列化1&#xff09;介绍2&#xff09;应用案例 5.json的反序列化1&#xff09;介绍2&#xff09;应用案例 二、单元测试1.引子2.单元测试-基本介绍3.代码实现4.单元测试的细节说明5.单元测试的综…

字符串和内存函数(2)

文章目录 2.13 memcpy2.14 memmove2.15 memcmp2.16 memset 2.13 memcpy void* memcpy(void* destination, const void* source, size_t num); 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到 ‘\0’ 的时候并不会停下来。如果so…

Windows系列:Windows server 2016 部署路由与远程访问服务

Windows server 2016 部署路由与远程访问服务 前言环境要求服务器配置ip 设置"远程访问" 服务安装 "远程访问" 服务配置 ”远程访问“ 服务新建用户 客户机配置添加VPNping 前言 千万不要安装图上的几个服务&#xff0c;如果安装了&#xff0c;鼠标会失灵…

【Vue】生命周期一文详解

目录 前言 生命周期 钩子函数使用方法 ​编辑 周期-----创建阶段 创建阶段做了些什么事 该阶段可以干什么 周期----挂载阶段 挂载阶段做了什么事 该阶段适合干什么 周期----更新阶段 更新阶段做了什么事 该阶段适合做什么 周期----销毁阶段 销毁阶段做了什么事 …

tex2D使用学习

1. 背景&#xff1a; 项目中使用到了纹理进行插值的加速&#xff0c;因此记录一些自己在学习tex2D的一些过程 2. 代码&#xff1a; #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <assert.h> #include <stdio.h>…

name 属性:提高 Vue 应用可维护性的关键

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

python爬虫中 HTTP 到 HTTPS 的自动转换

前言 在当今互联网世界中&#xff0c;随着网络安全的重要性日益增加&#xff0c;越来越多的网站采用了 HTTPS 协议来保护用户数据的安全。然而&#xff0c;许多网站仍然支持 HTTP 协议&#xff0c;这就给我们的网络爬虫项目带来了一些挑战。为了应对这种情况&#xff0c;我们需…

8. 队列

队列(queue)是一种遵循先入先出规则的线性数据结构。顾名思义&#xff0c;队列模拟了排队现象&#xff0c;即新来的人不断加入队列的尾部&#xff0c;而位于队列头部的人逐个离开。 如下图所示&#xff0c;我们将队列的头部称为“队首”&#xff0c;尾部称为“队尾”&#xff…

鸿蒙 ark ui 轮播图实现教程

前言&#xff1a; 各位同学有段时间没有见面 因为一直很忙所以就没有去更新博客。最近有在学习这个鸿蒙的ark ui开发 因为鸿蒙不是发布了一个鸿蒙next的测试版本 明年会启动纯血鸿蒙应用 所以我就想提前给大家写一些博客文章 效果图 具体实现 我们在鸿蒙的ark ui 里面列表使…

windows dockerdesktop 安装sqlserver2022

1.下载windows dockertop软件 下载连接 2.安装完成配置&#xff0c;下载源地址 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": …

Jenkins与Docker的自动化CI/CD流水线实践

Pipeline 有诸多优点&#xff0c;例如&#xff1a; 项目发布可视化&#xff0c;明确阶段&#xff0c;方便处理问题 一个Jenkins File文件管理整个项目生命周期 Jenkins File可以放到项目代码中版本管理 Jenkins管理界面 操作实例&#xff1a;Pipeline的简单使用 这里是比较…

分布式架构demo

1、外层创建pom 版本管理器 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><relativePath/> <!-- lookup parent from repository…

2023年c语言程序设计大赛

7-1 这是一道送分题 为了让更多的同学参与程序设计中来&#xff0c;这里给同学们一个送分题&#xff0c;让各位感受一下程序设计的魅力&#xff0c;并祝贺各位同学在本次比赛中取得好成绩。 注&#xff1a;各位同学只需将输入样例里的代码复制到右侧编译器&#xff0c;然后直…

指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)

文章目录 &#x1f680;前言&#x1f680;两段有趣的代码✈️typedef关键字 &#x1f680;指针数组&#x1f680;简易计算器的实现 &#x1f680;前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解&#xff0c;那么今天阿辉将为大家介绍C语言的指针剩下的部分&#…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(八)

套餐模块功能开发 1. 新增套餐1.1 需求分析和设计1.1.1产品原型&#xff1a;1.1.2接口设计&#xff1a;1.1.3数据库设计&#xff1a; 1.2 代码开发1.2.1 DishController层1.2.2 DishService接口类1.2.3 DishServiceImpl接口实现类1.2.4 DishMapper层1.2.5 DishMapper.xml1.2.6 …

centos7内核升级(k8s基础篇)

1.查看系统内核版本信息 uname -r 2.升级内核 2.1更新yum源仓库 yum -y update更新完成后&#xff0c;启用 ELRepo 仓库并安装ELRepo仓库的yum源 ELRepo 仓库是基于社区的用于企业级 Linux 仓库&#xff0c;提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行…

java--static的应用知识:单例设计模式

1.什么是设计模式(Design pattern) ①一个问题通常有n中解法&#xff0c;其中肯定有一种解法最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 ②设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 2.单例设计模式 确保一个类只…

R语言如何实现多元线性回归

输入数据 先把数据用excel保存为csv格式放在”我的文档”文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间(95%)

【功能测试】软件系统测试报告

1.引言 1.1.目的 本测试报告为 xxx 系统测试报告&#xff0c;本报告目的在于总结测试阶段的测试及测试结果分析&#xff0c;描述系统是否达到需求的目的。 本报告预期参考人员包括测试人员、测试部门经理、开发人员、项目管理人员等。 1.2.参考文档 《xxxx系统需求规格说明…