ArkTS编程语法基础,让你成为HarmonyOS开发高手

news2024/9/23 5:28:00

在这里插入图片描述

文章目录

    • ArkTS简介
    • ArkUI开发框架的整体架构
    • ArkTS的基础类型
    • 条件语句
    • 函数类模块
      • 函数定义
      • 函数的参数
      • 箭头函数
    • 迭代器
    • 后续学习资源介绍


ArkTS简介

ArkTS是HarmonyOS主力应用开发语言。它在TypeScript (简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。

image.png

ArkTS基于TvpeScript语言,拓展了声明式UI、状态管理、并发任务等能力。

ArkUI开发框架的整体架构

image.png

ArkTS的基础类型

ArkTS的基础类型和ts的大致基本相同

  1. 布尔值

TypeScript中可以使用boolean来表示这个变量是布尔值,可以赋值为true或者false。

let isDone: boolean = false;
  1. 数字

TypeScript里的所有数字都是浮点数,这些浮点数的类型是 number。除了支持十进制,还支持二进制八进制、十六进制。

let decLiteral: number = 2023;
console.log(decLiteral is' + decLiteral);

let binaryLiteral: number = 0b11111100111;
console.log(binaryLiteral is' + binaryLiteral);

let octalLiteral: number = 0o3747;
console.log('octalLiteral is ' + octalLiteral);

let hexLiteral: number = 0x7e7;
console.log('hexLiteral is' + hexLiteral);
  1. 字符串

TypeScript里使用 string表示文本数据类型,可以使用双引号 (“) 或单引号 () 表示字符串

let name: string = "Jacky";
name ="Tom";
name = 'Mick
  1. 数组
    TypeScript支持以下两种方式声明数组: 第一种,可以在元素类型后面接上],表示由此类型元素组成的一个数组:第二种方式是使用数组泛型,Array<元素类型>。
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];

5、元组

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

let x: [string, number]
x = ['hello', 10]; // OK
x =[10, hello']; // Error
  1. 枚举

enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字

enum Color {Red, Green, Blue];
let c: Color = Color.Green;
  1. unknown

有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。那么我们可以使用 unknown类型来标记这些变量。

let notSure: unknown = 4;
notSure = 'maybe a string instead';
notSure = false;
  1. void

当一个函数没有返回值时,你通常会见到其返回值类型是 void。

function test(): void {
  console.log('This is function is void');
}
  1. null 和 undefined

TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。

let u: undefined = undefined;
let n: null = null;
  1. 联合类型

联合类型 (Union Types) 表示取值可以为多种类型中的一种。

let myFavoriteNumber: string|number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;

条件语句

条件语句用于基于不同的条件来执行不同的动作。TypeScript 条件语句是通过一条或多条语句的执行结果(true 或 false) 来决定执行的代码块.
例如:if /if…else /seitch…case

函数类模块

函数定义

函数是一组一起执行一个任务的语句,函数声明要告诉编译器函数的名称、返回类型和参数。TypeScrip可以创建有名字的函数和匿名函数,其创建方法如下:

//有名函数: 给变量设置为number类型
function add(x: number, y: number): number {
  return x + y;
}
//匿名函数: 给变量设置为number类型
let myAdd = function (x: number, y: number): number {
  return x + y;
}

函数的参数

  1. 可选参数

在TypeScript里我们可以在参数名旁使用(?)实现可选参数的功能。比如,我们想让y是可选的:

function add(x: string, y?: string): number {
  return x + y;
}

let result1=add("a")
let result1=add("a","b")
  1. 剩余参数

剩余参数会被当做个数不限的可选参数。 可以一个都没有,同样也可以有任意个。 可以使用省略号(…) 进行定义:

function add(x: string, ...y: string[]) {
  return x + y.join();
}

let result1=add("a")
let result1=add("a","b","c","d")

箭头函数

和js箭头函数相同

let myAdd =  ([parame1, parame2]) {
 //代码块
}

迭代器

当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。

后续学习资源介绍

更多内容大家可以参考TypeScript的官方教程(https://www.typescriptlang.org/docs/)。
在线Playground平台(https://www.typescriptlang.org/play)。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

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

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

相关文章

防火墙..

目录 1.什么是防火墙 1.1分类 1.2.Netfilter(数据包过滤) 1.2.1定义 1.2.2Netfilter分析内容 1.3防火墙无法完成的任务 1.4iptables 与firewalld区别 2.iptables 2.1iptables执行原则 2.1.1原则 2.1.2防火墙规则 2.2规则链 2.2.1概念 2.2.2分析 2.2.3规则链分类…

leetcode:反转链表

题目描述 题目链接&#xff1a;206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 分析题目 思路一 我们可以设计算法让整个链表掉头 定义三个代码n1,n2,n3 n1指向NULL&#xff0c;n2指向head&#xff0c;n3指向第二个结点 当n2不为NULL的时候&#xff0c;让n2->ne…

fastdfs-client-java-1.30 maven 打包安装

1. 进入源代码目录&#xff0c;打开cmd mvn clean install 或者 mvn package 问题不大的话会在同级目录target目录下生成打包后文件 2. 当前目录下cmd进行maven安装 mvn install:install-file -DgroupIdorg.csource -DartifactIdfastdfs-client-java -Dversion${version} -D…

CompletableFuture.join() vs Future.get(),开发中哪个更好

CompletableFuture和Future都是Java中的接口&#xff0c;用于异步编程和并发处理。 Future表示一种异步计算的结果&#xff0c;可以通过get()方法获取计算结果或等待计算的完成。但是&#xff0c;如果计算还未完成&#xff0c;get()方法会阻塞线程&#xff0c;这会影响并发性能…

虾皮台湾站点什么好卖

在如今的电商时代&#xff0c;越来越多的人选择通过网购来满足购物需求。而中国台湾地区作为一个充满机遇的市场&#xff0c;吸引了许多商家的目光。虾皮作为台湾地区最大的电商平台之一&#xff0c;为卖家提供了丰富的销售机会。但是&#xff0c;卖家们在选择什么产品来销售时…

文档明明在桌面上却不显示?5个方法轻松解决!

“我之前保存文档的时候明明选择保存在桌面&#xff0c;上次看的时候文件还在&#xff0c;但是今天打开电脑后发现我保存在桌面的文档不见了&#xff0c;这是为什么呢&#xff1f;还有机会找回我的文件吗&#xff1f;” 在日常使用电脑时&#xff0c;有些用户为了方便&#xff…

大势智慧代理商体系持续开疆拓土,全国代理火热招募中...

11月15日&#xff0c;武汉大势智慧科技有限公司&#xff08;后简称“大势智慧”&#xff09;与上海宝天信息科技有限公司&#xff08;后简称“宝天信息”&#xff09;金牌代理商签约授牌仪式成功举行。大势智慧副总裁周济安先生、宝天信息经理王芳女士分别作为双方签约代表出席…

virtuoso 后仿 ADE L error

ADE后仿时出现error ERROR (SFE-23): "input.scs" 299: The instance _57_D32_noxref is referencing an undefined model or subcircuit, parasitic_nwd. Either include the file containing the definition of parasitic_nwd, or define parasitic_nwd before run…

STM32定时器输入捕获测量高电平时间

STM32定时器输入捕获测量高电平时间 输入捕获测量高电平时间CuebMX配置代码部分 本篇内容要求读者对STM32通用定时器有一点理解&#xff0c;如有不解&#xff0c;请看 夜深人静学32系列15——通用定时器 输入捕获 输入捕获是STM32通用定时器的一种功能&#xff0c;可以捕获特定…

mysql数据库【进阶篇】

1.存储引擎 1.1 mysql的体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;主要完成- -些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层&#xff1a;第二层架构主要完成大多数的核心服务功…

Scrum敏捷开发培训团队和组织来说的重要性

Scrum敏捷开发培训对于团队和组织来说是至关重要的&#xff0c;有以下几点&#xff0c;大家可以参考下&#xff1a; 理解敏捷价值观和原则&#xff1a; 培训有助于团队理解敏捷方法背后的核心理念和价值观&#xff0c;包括个体和互动、工作软件、客户合作和响应变化。这有助于建…

解决Spring Boot应用在Kubernetes上健康检查接口返回OUT_OF_SERVICE的问题

现象 在将Spring Boot应用部署到Kubernetes上时&#xff0c;健康检查接口/actuator/health返回的状态为{"status":"OUT_OF_SERVICE","groups":["liveness","readiness"]}&#xff0c;而期望的是返回正常的健康状态。值得注…

单脉冲测角-和差比幅法-方向图传播因子-函数编写

方向图传播因子-函数编写 和差比幅法单脉冲测角原理代码仿真结果参数说明 和差比幅法单脉冲测角原理 有关单脉冲测角和差比幅法的原理已经在博文单脉冲测角-和差比幅法中详细介绍了&#xff0c;我们在实际仿真的时候&#xff0c;往往需要在给定来波方向下方向图转化因子&#…

关于代码混淆,看这篇就够了

​ 代码混淆一.基本概念java的bytecode很容易通过JAD等反编译工具还原出源代码。这样势必不满足安全的定义。如何一定程度上保护需要防止被反编译的源代码呢&#xff1f;混淆&#xff08;obfuscate&#xff09;技术。注意&#xff1a;用obfuscate防盗版是根本不可能&#xff0c…

java 实现发送邮箱,复制即用,包含邮箱设置第三方登录授权码获取方法

application.yml spring:profiles:active: dev # active: test#邮件附件上传文件大小限制servlet:multipart:max-file-size: 50MB #单个文件大小限制max-request-size: 100MB #总文件大小限制&#xff08;允许存储文件的文件夹大小&#xff09;mail:default-encoding: UTF…

[uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝

toast一闪就消失 1.猜测频繁点击导致 – 排除 2.猜测再定时器内导致-- 排除 3.和封装的接口调用一起导致 - 是改原因 深挖发现: axios封装中, 对loading/hindloading进行了配置, 看来是 showToast 与 loading等冲突导致的 wx.hideLoading(Object object) 解决办法 再封装的…

数据结构与算法之美学习笔记:23 | 二叉树基础(上):什么样的二叉树适合用数组来存储?

目录 前言树&#xff08;Tree&#xff09;二叉树&#xff08;Binary Tree&#xff09;二叉树的遍历解答开篇 & 内容小结 前言 本节课程思维导图&#xff1a; 前面我们讲的都是线性表结构&#xff0c;栈、队列、链表等等。今天我们讲一种非线性表结构&#xff0c;树。问题&…

开源免费的流程设计器如何选型

大家在开发OA办公自动化、ERP、CRM、BPM、低代码平台等项目的时候&#xff0c;经常用到流程引擎&#xff0c;目前主流的开源流程引擎有activiti、flowable、camunda。这几个开源的流程引擎均基于BPMN2.0国际规范标准&#xff0c;其功能均比较强大&#xff0c;接口也很丰富。但涉…

远程数据采集继电器RTU如何应用在智能电动汽车充电桩

远程数据采集继电器&#xff08;Remote Terminal Unit&#xff0c;RTU&#xff09;在智能电动汽车充电桩中的应用&#xff0c;可以为充电桩系统提供更高效、安全和可靠的远程监控与控制功能。下面将详细说明RTU在智能电动汽车充电桩中的应用。 远程监控功能&#xff1a; RTU可以…