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

news2024/12/23 14:05:26

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 = 2

if(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')
        break
    case 'B': 
        console.log('结果为B')
        break
    case 'C':
        console.log('结果为C')
        break
    default:
        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: number
    private height: number

    // 构造函数
    constructor(widht: number, height: number) {
        this.width = widht
        this.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.coloradmin.cn/o/1275802.html

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

相关文章

教你把ChatGPT训练抖音爆款文案(附提示词)

刚好有圈子同学问到&#xff1a;如何把ChatGPT训练成1个抖音爆款写手&#xff0c;相信很多小伙伴日常也存在类似需求&#xff0c;用好一个GPT&#xff0c;让月薪5K的小助理快速变成3万月薪的运营。本期就给大家安排一期ChatGPT教程。接下来手把手演示ChatGPT调教和提示词方式一…

福州大学《嵌入式系统综合设计》实验十三:RTSP拉流与RTMP推流

一、实验目的 掌握基于算能平台的JPEG压缩编码方法以及开发环境&#xff0c;包括开发主机环境搭建&#xff0c;硬件嵌入式开发板的连接&#xff0c;云平台的配置&#xff0c;编码程序的编译、运行等。 二、实验内容 搭建实验开发环境&#xff0c;并编写静止图像jpeg格式编解…

如何在Python中对Dynamsoft Barcode Reader性能进行基准测试

Dynamsoft Barcode Reader SDK一款多功能的条码读取控件&#xff0c;只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。这可以节省数月的开发时间和成本。能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK&#xff0c;…

ThinkPHP 2.x任意代码执行漏洞

任务一&#xff1a; 复现环境中的代码漏洞 任务二&#xff1a; 尝试利用代码执行漏洞读取服务器web目录下的文件列表。 任务一&#xff1a; 1.搭建环境&#xff1a; 2.在php环境下直接输入{${phpinfo}}测试代码片段 2.写入一句话木马&#xff0c;用antsword连接&#xff0…

Java数据结构之《循环队列》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题只要我写完…

夯实c基础

夯实c基础 区别&#xff1a; 图一的交换&#xff0c;&#xff08;交换的是地址而不是两数&#xff09;无法实现两数的交换。 题干以下程序的输出结果为&#xff08; c  &#xff09;。 void fun(int a, int b, int c){ ca*b; } void main( ){ int…

【Unity】Blender场景导入

素材 下载场景&#xff1a;https://www.aplaybox.com/details/model/keDSIks72Qh3 blender文件导出为.fbx文件&#xff0c;路径选择复制&#xff08;做的过程太乱了不知道有没有影响&#xff09;&#xff0c;物理类型选择网格&#xff0c;勾选应用变换 blender下的物体长度是u…

openbabel 安装 生成指纹方法

今日踩坑小结&#xff1a; openbabel 安装&#xff1a; 可以装&#xff0c;但是得在 Linux 环境下&#xff0c;win 环境装会报错&#xff08;安装不会报错&#xff0c;但是生成指纹的时候会&#xff09; 指纹&#xff1a; 在下面这个链接里&#xff0c;官方给出了命令行调用 o…

袖珍可穿戴手持气象仪是什么?

随着科技的不断发展&#xff0c;我们身边的世界正在变得越来越智能化。近日&#xff0c;一款名为WX-SQ12可穿戴手持气象仪的科技新品引起了人们的广泛关注。这款气象仪不仅具有创新性的可穿戴设计&#xff0c;还具备强大的气象数据监测功能&#xff0c;让用户可以随时掌握天气变…

nvm安装管理nodejs版本

1&#xff1a;如果之前先安装了nodejs先卸载nodejs 2&#xff1a;下载nvm&#xff0c;点击下载路径https://github.com/coreybutler/nvm-windows/releases&#xff0c;选择相应环境下载&#xff0c;如下window环境下载 下载成功后&#xff0c;选择NVM安装在哪个文件目录下&…

【图论】重庆大学图论与应用课程期末复习资料2-各章考点(计算部分)(私人复习资料)

图论各章考点 二、树1、避圈法&#xff08;克鲁斯克尔算法&#xff09;2、破圈法3、Prim算法 四、路径算法1、Dijkstra算法2、Floyd算法 五、匹配1、匈牙利算法&#xff08;最大权理想匹配&#xff08;最小权权值取反&#xff09;&#xff09; 六、行遍性问题1、Fleury算法&…

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

作者&#xff1a;邵健 杭州银行数据库专家 王辉 PingCAP 杭州银行在 TMS beta 阶段就进行了深度的测试体验&#xff0c;在过程中提供了大量的宝贵建议&#xff0c;帮助 TMS 进行了快速的优化和迭代。近期杭州银行借助 TMS 进行了多次 Oracle 生产数据库的迁移实践&#xff0c;…

双远心镜头:让视觉检测更精准、高效!

工业镜头是视觉系统中的重要组件&#xff0c;工业镜头的选型影响着整个系统的成像效果。在做视觉检测时&#xff0c;会遇到无法检测空间物体、无法控制视场变化、无法控制图像扭曲、对比度低、畸变大、反光等问题&#xff0c;这时普通的工业镜头并不能有效地解决问题&#xff0…

Electron+Ts+Vue+Vite桌面应用系列:TypeScript常用系统目录文件处理工具

文章目录 1️⃣ TypeScript操作电脑目录和文件1.1 获取磁盘信息1.2 获取目录下所有文件夹和文件1.3 新建文件夹1.4 新建文本1.5 重命名1.6 删除文件夹1.7 删除文件1.8 打开系统文件或系统文件夹1.9 根据字节转换文件大小带单位 优质资源分享 作者&#xff1a;xcLeigh 文章地址&…

JOSEF约瑟 剩余电流保护器 CLJ3-100A+LH30 导轨安装

CLJ3系列剩余电流动作继电器 系列型号&#xff1a; CLJ3-100A剩余电流动作继电器 CLJ3-250A剩余电流动作继电器 CLJ3-400A剩余电流动作继电器 CLJ3-630A剩余电流动作继电器 LH30剩余电流互感器 LH80剩余电流互感器 LH100剩余电流互感器 LH140剩余电流互感器 一、产品概…

Linux5-计划任务、进程

计划任务 一、cron 计划任务 周期性计划任务 cron 任务概述 • 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 • 软件包&#xff1a;cronie、crontabs • 系统服务&#xff1a;crond • 日志文件&#xff1a;/var/log/crond 管理计划任务策略 • 使用 cro…

Leetcode—1657.确定两个字符串是否接近【中等】

2023每日刷题&#xff08;四十五&#xff09; Leetcode—1657.确定两个字符串是否接近 算法思想 源于灵神 实现代码 class Solution { public:bool closeStrings(string word1, string word2) {int len1 word1.size();int len2 word2.size();if(len1 ! len2) {return fa…

【note: This is an issue with the package mentioned above, not pip.】

安装gym时出现问题&#xff0c;note: This is an issue with the package mentioned above, not pip. 报错原因&#xff1a; 缺失了某些依赖模块&#xff0c;所以安装报错。 Collecting package metadata (current_repodata.json): done Solving environment: failed with in…

阿里云新版公共实例从注册账号到创建设备生成参数教程

1 注册阿里云 打开阿里云官网&#xff0c;点击右上角的登录/注册 打开的界面按照图片输入手机号注册 注册成功后&#xff0c;登录返回第一次打开的界面&#xff0c;点击控制台 点击控制台后界面如下 点击左上角的菜单&#xff0c;弹出新窗口&#xff0c;搜索物联网平台 开通物…

分治算法——75. 颜色分类

文章目录 &#x1f33f;0. 分治&#x1f33b;1. 题目&#x1f33c;2. 算法原理&#x1f334;3. 代码实现 &#x1f33f;0. 分治 分治分治&#xff0c;顾名思义分而治之&#xff0c;将一个大问题转换成若干个子问题&#xff0c;再将这些子问题的基础上继续划分成更小的子问题&a…