HarmonyOS 快速入门TypeScript

1.什么是TypeScript,它和JavaScript,ArkTs有什么区别

ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS,我们首先要了解下ArkTS、TypeScript和JavaScript之间的关系:

  • JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
  • TypeScript 是 JavaScript 的一个超集,它扩展了 JavaScript 的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。
  • ArkTS兼容TypeScript语言,拓展了声明式UI、状态管理、并发任务等能力。

由此可知,TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集,他们的关系如下图所示:

简单来说,ArkTs扩展了TS,而TS在JS的基础也得到了扩展,经过了解,下面我们学习一下Type Script的基础语法

2.Type Script基础语法

基本类型

1.布尔类型boolean

let isDone:boolean = true

2.数字number

let n:number = 1

3.字符串string

let s:string = "string"

4.数组number[]或Array<number>

let arr :number[] = [1,2,3]
let list: Array<number> = [1,2,3,4,5]

5.元祖[number,string]

let tuple:[string,number] = ['name',12]

6.枚举 enum 

enum Color{
  Red,Green,Blue
}
let e:Color = Color.Red

7.unkown

let no:unknown = 4
no = false
no = "unkown"

8.void

function test():void{

}

9.undefine和null

let u:undefined = undefined

let emtry = null

10.联合类型,比如 let x = string|number ,x可以赋值为'str'和1

let b :string|number = 1
b = 'str'
b = 4

条件语句

1.if语句

let  x = 1

if(x==1){
  console.log("666")
}

2.if...else....语句

if(x==1){
  console.log('是1')
}else{
  console.log("不是1")
}

3.if...else if...if...语句

if(x==1){
  console.log('是1')
}else if(x==2){
  console.log("是2")
}else{
  console.log("不是1也不是2")
}

4.switch...case....语句(default,break)

switch (x){
  case 1:
    console.log("是1")
  break;
  case 2:
    console.log("是2")
  break;
  default :
    console.log("不是1也不是2")
  break;
}

函数

函数声明包含函数名,参数,返回类型

1.有名函数

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

2.匿名函数

let n = function(x:number,y:number){
  return x+y;
};

3.函数的可选参数

我们在参数值后跟?,表示该参数是可选的,即传与不传都不影响函数的执行

function getInfo(firstName:string,lastName?:string){
  Console.log(getInfo)
}

4.函数的剩余参数

我们在参数值前跟...,表示该参数是一个剩余参数,即可以不传,也可以传多个

function printName(firstName:string,...lastName:string[]){

}

5.箭头函数

在ES6版本,Type Script 提供了箭头函数,即function可以被省略,以箭头的形式表示一个函数,还可以将整个代码块赋值给变量

let x =(firstName:string,lastName:string)=>{

//代码块
}

类是一种面向对象思想的编程用法,包含变量的声明,构造函数,以及普通函数的使用

1.类的基础用法

class Person{
  private name:string
  private age:number

  constructor(name:string,age:number) {
    this.name = name
    this.age = age
  }

  public getInfo():string{
    //return "name:"+this.name+",age:"+this.age;
	  return `name is ${this.name},age is ${this.age}`//反引号
  }
}

let p  = new Person("sun",14)

console.log(p.getInfo())

2.继承

class Employee extends  Person{
  
}

模块 

一个文件的B类想要访问另外一个文件的A类,在TS里需要使用export导出A类,在B类里通过import 导入进来

任何声明(比如变量,函数,类,类型别名或接口)都能够通过添加export关键字来导出

模块A

export class Person{

...

}

 模块B


import {Person} from '../../../../../entry/src/main/ets/entryability/Person'

class test{
    x = new Person("name",12)

    constructor() {
        
    }
}


 let test1 = new test();
 console.log(test1.x.getInfo());

模块 | TypeScript Handbook

迭代器

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

1.for...of...对值遍历

let arr =[1,2,3]

for(let x of arr){
  console.log(x.toString()) //1,2,3
}

2.for...in...对下标遍历

let arr =[1,2,3]

for (let arrKey in arr) {
  console.log(arrKey); //0,1,2
}

3.在线学习与运行

TypeScript 中文网

TypeScript 在线工具 | 菜鸟工具

TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GoLong的学习之路(二)语法之基本数据类型

书接上回&#xff1a;我在GoLong的学习之路&#xff08;一&#xff09;中在常量最后说了iota的作用。今天这里我在介绍一下我学习Go语言中基本数据类型。 文章目录 Go中的基本数据类型整型特殊整型数字字面语法 浮点型复数布尔值字符串字符串转义符多行字符字符串的常用操作&am…

汉威科技光纤预警系统,守护油气长输管道“大动脉”

石油、天然气早已成为城市生活中不可或缺的能源。广大车主能快速地加上汽油&#xff0c;千家万户能方便地用上天然气&#xff0c;得益于我国庞大的石油、天然气输送基础设施网络。 我国油气分布西多东少、北多南少&#xff0c;要想把千里、乃至万里之外的石油、天然气输送到中部…

Pytorch整体工作流程代码详解(新手入门)

一、前言 本文详细介绍Pytorch的基本工作流程及代码&#xff0c;以及如何在GPU上训练模型&#xff08;如下图所示&#xff09;包括数据准备、模型搭建、模型训练、评估及模型的保存和载入。 适用读者&#xff1a;有一定的Python和机器学习基础的深度学习/Pytorch初学者。 本文…

【FPGA零基础学习之旅#17】搭建串口收发与储存双口RAM系统

&#x1f389;欢迎来到FPGA专栏~搭建串口收发与储存双口RAM系统 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0…

ARM 汇编指令 orreq 的使用

orreq 阅读代码时&#xff0c;发现有个【组合指令】 orreq&#xff0c; orr 一般是 OR&#xff0c;也就是或操作&#xff0c;后面加个 eq 表示什么呢&#xff1f; 比如下面的代码&#xff1a;前面一个操作&#xff0c; tst&#xff0c;好像没做实际的操作&#xff0c;可能影响…

Leetcode—7.整数反转【中等】

2023每日刷题&#xff08;十&#xff09; Leetcode—7.整数反转 关于为什么要设long变量 参考自这篇博客 long可以表示-2147483648而且只占4个字节&#xff0c;所以能满足题目要求 复杂逻辑版实现代码 int reverse(int x){int arr[32] {0};long y;int flag 1;if(x <…

【人脸检测 FPS 1000+】ubuntu下libfacedetection tensorrt部署

TensorRT系列之 Windows10下yolov8 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov8 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov7 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov6 tensorrt模型加速部署 TensorRT系列之 Linux下 yolov5 tensorrt模型加速…

4G通信电子标签

4G移动通信系统 4G最大的数据传输速率超过100Mbit/s&#xff0c;这个速率是移动电话数据传输速率的1万倍&#xff0c;也是3G移动电话速率的50倍。4G手机可以提供高性能的汇流媒体内容&#xff0c;并通过ID应用程序成为个人身份鉴定设备。它也可以接受高分辨率的电影和电视节目…

给运行中的docker容器挂载目录——筑梦之路

使用场景 对于一个已经运行的容器&#xff0c;如果后续需要新挂载一个目录怎么办&#xff1f;为什么不能重新创建一个容器&#xff1f; 容器内可能安装过很多东西&#xff0c;很费时&#xff0c;如果重新创建一个容器再挂载&#xff0c;还得重新安装很多东西&#xff0c;非常费…

Qt5 Python-docx库的使用,Qt python混合编程,qt 读写word,不依赖office

解决方案的选择 参考&#xff1a; https://www.jianshu.com/p/be68884849c3 因为项目要求不能使用模板方案&#xff0c;不能依赖Office&#xff0c;网上找了一些解决方案进行调研&#xff0c;以下几个方案&#xff1a; OpenOffice: 兼容性差&#xff0c;集成调用难度大LibOffi…

大数据-Storm流式框架(三)--Storm搭建教程

一、两种搭建方式 1、storm单节点搭建 2、完全分布式搭建 二、storm单节点搭建 准备 下载地址&#xff1a;Index of /dist/storm 1、环境准备&#xff1a; Java 6 Python 2.6.6 2、上传、解压安装包 3、在storm目录中创建logs目录 mkdir logs 启动 ./storm help …

数据库安全定义以及重要性简单讲解

数据库安全定义 数据库安全指的是对数据库进行保护&#xff0c;以确保其数据的机密性、完整性和可用性&#xff0c;并防止非法访问、篡改、破坏、泄露等安全威胁。一般包括访问控制、数据加密、审计和监控、数据备份、漏洞修补、网络安全等方面。 数据库安全的重要性 1、数据…

不希望你的数据在云中?关闭iPhone或Mac上的iCloud

​如果你不想使用iCloud&#xff0c;可以很容易地从设备设置中选择退出并关闭它。当你禁用iCloud时&#xff0c;它会删除该设备对iCloud的访问&#xff0c;但不会删除苹果服务器上的任何数据。我们将在本文末尾向你展示如何做到这一点。 注销iCloud并完全禁用它 如果你根本不…

视频相关学习笔记

YUV 和rgb一样是一种表示色彩的格式&#xff0c;Y表示亮度&#xff0c;UV表示色度&#xff08;U是蓝色投影&#xff0c;V是红色投影&#xff09;&#xff0c;只有Y就是黑白的&#xff0c;所以这个格式的视频图片可以兼容黑白电视&#xff0c;所以彩色电视使用的都是YUV 存储方…

Vue 2 生命周期与 Vue 3 生命周期:介绍与差别对比

目录 引言&#xff1a; 一、Vue 2 生命周期介绍&#xff1a; 二、Vue 3 生命周期介绍&#xff1a; 注册周期钩子​ 生命周期图示 生命周期 三、Vue 2 生命周期与 Vue 3 生命周期的差别对比&#xff1a; 引言&#xff1a; Vue.js 是一款流行的 JavaScript 框架&#xff0…

蓝桥杯每日一题2023.10.22

题目描述 灵能传输 - 蓝桥云课 (lanqiao.cn) 题目分析 发现每一次的灵能传输都是对前缀和s[i - 1]和s[i]的一次交换 我们发现只剩下s1没有相减&#xff0c;在这里我们可以添加一个为0的s0&#xff0c;使整个式子表示完整 故为求max(s[i], s[i - 1])的最小值&#xff08;发现…

Linux笔记之diff工具软件P4merge的使用

Linux笔记之diff工具软件P4merge的使用 code review! 文章目录 Linux笔记之diff工具软件P4merge的使用1.安装和配置2.使用&#xff1a;p4merge a.cc b.cc3.配置git 参考博文: Ubuntu Git可视化比较工具 P4Merge 的安装/配置及使用 1.安装和配置 $ wget https://cdist2.per…

避雷!又有2本期刊被标记“On Hold”!含中科院2区(TOP),共8本有风险!

期刊动态&#xff1a;新增2本期刊“On Hold” 最新&#xff0c;又有2本期刊被科睿唯安标记为「On Hold」&#xff01;这2本期刊分别为MIGRATION LETTERS和REVISTA DE GESTAO E SECRETARIADO-GESEC。 目前科睿唯安官网&#xff1a;共有8本期刊被标记为「On Hold」&#xff0c;…

http代理IP它有哪些应用场景?如何提升访问速度?

随着互联网的快速发展&#xff0c;越来越多的人开始关注网络速度和安全性。其中&#xff0c;代理IP技术作为一种有效的网络加速和安全解决方案&#xff0c;越来越受到人们的关注。那么&#xff0c;http代理IP有哪些应用场景&#xff1f;又如何提升访问速度呢&#xff1f; 一、h…

游戏研发的解决方案有哪些?

游戏研发的解决方案可以根据不同的需求和情境而有所不同&#xff0c;以下是一些常见的游戏研发解决方案&#xff1a; 游戏引擎&#xff1a; 游戏引擎是游戏研发的基础&#xff0c;它提供了开发游戏所需的核心功能&#xff0c;如图形渲染、物理引擎、音效管理、动画等。一些流行…