首页 > 其他分享 >HarmonyOS第二课,TypeScript语法知识

HarmonyOS第二课,TypeScript语法知识

时间:2023-12-12 11:37:49浏览次数:30  
标签:TypeScript console 第二课 number HarmonyOS let log string

1、TypeScript中常用的变量类型

1、布尔值

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

 let isDone : boolean = false ;

2、数字

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 );

3、字符串

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

 let name : string =" Jacky ";
 name =" Tom ";
 name =' Mick ';

4、数组

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 

6、枚举

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

 enum Color ( Red , Green , Blue );
 let c : Color = Color . Green ;

7、 unknown

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

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

8、 void

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

function test (): void {
 console . log ( This is function is void ");
}

9、 null 和 undefined

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

 let u : undefined = undefined ;
 let n : null = null ;

10、联合类型【最常用】

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

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

2条件语句定义

if语句

let num:number = 5
if(num > 0){
console.log('数字是正数');
}

if...else语句

let num:number = 12;
if(num % 2 == 0){
console.log('偶数');
}else{
console.log('奇数');
}

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

let num:number = 0
if(num > 0){
console.log('是正数');
}else if(number < 0){
console.log('是负数');
}else{
console.log('是0');
}

switch case

var grade:string = 'A';
switch(grade){
case 'A':{
console.log('优');
break;
}
case 'A':{
console.log('优');
break;
}
case 'B':{
console.log('良');
break;
}
case 'C':{
console.log('及格');
break;
}
case 'D':{
console.log('不及格');
break;
}
default {
console.log('非法输入');
break;
}
}

3函数的定义

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

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

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

//在TypeScript中可以在参数名旁边使用(?)实现可选参数的功能。
function buildName(firstName:string, lastName?:string){
  if(lastName){
      return firstName + ' ' + lastName;
  }else{
      return firstName;
  }
}

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

function getEmployeeName(firstName:string, ...restOfName:string[]){
  return firstName + ' ' + restOfName.join(' ');
}

let employeeName1 = getEmployeeName('TOM');
let employeeName2 = getEmployeeName('TOM', 'Sandy', 'Lucas', 'Mick');

//箭头函数
([param1, param2, ...paramn]) => {
 //代码块
}

//箭头函数可以赋值给一个变量
let arrowFun = ([param1, param2, ...paramn]) => {
  //代码块
}

//常用函数定义转为箭头函数
function add (x:number, y:number): number {
  return x + y;
}

let arrowFun = (x:number, y:number): number => {
	return x + y;
} 

4 类的定义

TypeScript支持基于类的面向对象的编程方式,定义类的关键字为class,后面紧跟类名。类描述了所创建的对象共同的属性和方法

class Person{
	private name: string
	private age: number
	
	constructor(name:string, age: number){
		this.name = name;
		this.age = age;
	}
	
	public getPersonInfo():string{
		return `My name is ${this.name} and age is ${this.age}`
	}
}

let person1 = new Person('Jacky', 18);
person1.getPersonInfo();

5 类的继承

继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。TypeScript中允许使用继承来扩展现有的类,对应的关键字为extends

class Employee extends Person{
	private department: string
	
	constructor(name: string, age: number, department: string){
		super(name, age);
		this.department = department;
	}
	
	public getEmployeeInfo(): string {
		return this.getPersonInfo() + ` and work in $(this.department)`;
	}
}

let person2 = new Employee('Tom', 28, 'HuaWei');
person2.getPersonInfo();
person2.getEmployeeInfo();

6 模块

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数。两个模块之间的关系是通过在文件级别上使用import和export建立的。模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用export导出它们。类似地,我们必须通过import导入其他模块导出的变量、函数、类等。

export class NewsData{
	title:string;
	content:string;
	
	constructor(title: string, content: string){
		this.title = title;
		this.content = content;
	}
}

//其他文件中导入类
import {NewsData} from '../common/bean/NewsData';

7 迭代器

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

//for...of语句
let someArray = [1, "string", false];

for (let entry of someArray){
	console.log(entry);
}


//for...of vs for...in 语句
let list = [4,5,6]

//for...in对下标进行遍历
for (let i in list){
	console.log(i); // "0", "1", "2"
}


for (let i of list){
	console.log(i); // "4", "5", "6"
}

标签:TypeScript,console,第二课,number,HarmonyOS,let,log,string
From: https://www.cnblogs.com/creamk87/p/17879735.html

相关文章

  • 【HarmonyOS】Web组件使用setResponseIsReady+setResponseData实现异步自定义响应数据
    【问题描述】在web组件的自定义响应数据方法如下:Web().onInterceptRequest((event)=>{…})如果需要在callbak中如果使用Promise等获取异步信息,并读取该如何操作 【解决方案】通过setResponseIsReady+setResponseData的方式控制数据返回,先设置setResponseIsReady为fal......
  • typescript 参数声明,参数之前相互依赖,实例化时能明确传入参数,a参数的取值,依赖b参数的
    //声明类型exportinterfaceIform{Input:{text:string;},Select:{options:any[];},Radio:{checkd:boolean;},Switch:{checked:boolean;},}//声明函数定义函数参数key,form,form取值,校验依赖于keyexportfunctiongetF......
  • 掌握TS 从基础到深度理解,晋级TypeScript高级开发的几个实战经验
    TypeScript作为JavaScript的超集语言,在现代前端开发中扮演着重要的角色。掌握TypeScript并深入理解其高级特性,将使开发者能够更加高效地进行项目开发。本文将分享几个实战经验,帮助开发者从基础到深度理解TypeScript,并实现晋级到TypeScript高级开发的目标,并提供相关代码示例。类型注......
  • 【HarmonyOS】Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]报错权限自
    ​【关键词】REQUEST_PERMISSIONS_FAILED、应用权限、ACL 【问题背景】在调用ArkTSAPI的过程中,往往会受到一些权限的限制,但是明明我们已经在module.json5文件的requestPermissions配置了该权限,真机运行的的时候却报错,一直运行不起来,这是为何?​​ 【问题分析及解决方案......
  • Typescript中Unknown类型的说明&注意事项
    unknown是TypeScript中的一种顶级类型,它表示一个未知的值。与any类型不同,unknown类型更加类型安全。当一个值被标记为unknown类型时,它只能赋值给unknown或any类型。这意味着我们不能对unknown类型的值执行任何操作,除非我们首先进行类型检查或类型断言。以下是一个......
  • Typescript中Readonly<T> 是什么&例子
    Readonly<T>是TypeScript中的一个预定义类型操作工具,用于将给定类型T中的所有属性设置为只读。这意味着创建的新类型将具有与原始类型相同的属性,但这些属性在新类型中是只读的,不可修改。下面是一个示例:typePerson={name:string;age:number;};typeReadonlyPe......
  • 在typescript中,Omit是什么意思
    在TypeScript中,Omit<Type,Keys>是一个工具类型(utilitytype),它用于创建一个新的类型,这个新类型是从现有类型(Type)中排除了某些指定的属性(Keys)后的结果。具体来说,Omit<User,"token">表示创建一个新的类型,这个类型包含了User类型的所有属性,除了token属性。换句话说,如果User......
  • NestJS 筑基:TypeScript 类和装饰器
    前言先回顾下前文中介绍了哪些内容:使用@nestjs/cli创建和管理Nest应用Hello,World示例代码分析Nest基本概念:模块,控制器,服务常用的装饰器:@Module、@Controller、@Get、@InjectableNest目录结构分析@nest/cli脚手架的命令本文先不继续讲解Nest中的内容,而是打算介绍TypeSc......
  • 鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
    前言做HarmonyOS鸿蒙开发离不开DevEcoStudio开发工具,DevEcoStudio是基于IntelliJIDEACommunity开源版本打造,所以默认的快捷键其实继承于IntelliJIDEA。熟悉DevEcoStudio的快捷键能提升开发效率和开发体验。下面将详细列出DevEcoStudio一些常用的快捷键,由......
  • 《钢岚》今日首发,成为首款基于HarmonyOS NEXT开发的战棋新游
    今日,紫龙游戏旗下BlackJack工作室全新战棋旗舰作品《钢岚》在华为游戏中心首发上线,并宣布《钢岚》完成鸿蒙原生应用开发,成为基于HarmonyOSNEXT开发的首款战棋新游,不但进一步丰富了鸿蒙生态战棋品类游戏内容,也是鸿蒙生态游戏内容建设的重要进展,为鸿蒙生态注入更多新鲜血液。作为......