//1.变量的声明 import { Type } from '@ohos.arkui.StateManagement'; let str1:string='你好' //自动推导数据类型 // str2=123 ;// 变量的数据类型,不能改变 //不允许使用var声明 //const声明的是常量,只能赋值一次 const str3:string='123'; //str3='234' //数据类型 // 1.number let num1:number=123;//10进制 let num2:number=0B1;//2进制 let num3:number=0o17;//8进制 let num4:number=0xfac;//16进制 let str5:string='hello word'; let str6:string="hello word"; let str7:string=`hello word${num1}`; //Object 是所有类型的基础类,也就是所有类的父类 let ob:Object='123' //枚举 enum sex{ 男,女 } let sex1:sex=sex.女; let sex2:sex=1; class dog{ play(){ console.log('狗') } } class cat{ play(){ console.log('猫') } } class penguin{ play(){ console.log('企鹅') } } //pet 是联合类型 type pet=dog|cat|penguin let p1:pet=new dog(); p1.play() // let a:any='111' // let a; let a:null=null; let a2:undefined=undefined; let a3:string; //number.string.boolean.enum.union.null.基本类型 // void.undefined.ailases 复合类型 // array.object type fun=(a:string)=>string export class Err{ static add(a:number,b:number):number{ if(!b){ // 抛出异常 throw new Error('除数不能为0') } return a/b } } export function tryCatch(){ let aaa:number=0; try {//有可能出现问题的代码 aaa= Err.add(1,0) }catch (e){//出现问题后解决办法 e--错误信息 console.log(e) } finally {//异常的最终处理方案 //不管有没有出现异常都会执行 return aaa; } } function abc(){ //无参函数,并且没有返回值 } function abc1():string{ // 除了void和any,必须有返回值 return 'jjj' } function abc2():void{ // viod:没有返回值 } function abc3(x:number,y:number){ if (x > 0) { return x+y; }else{ return '你好' } } let abcd:number|string=abc3(2,4) export function getName(name?:string){ return name; } //可选参数放在最后 function getAge(name?:string,sex?:string){ if (name) { return `${name}${sex}` } return `无名${sex}` } // b默认值是3 function add(a:number,b:number=3){ return a+b; } let a1=add(2,6) let a22=add(2); //rest参数 不确定数量的参数 function ages(name:string,...ages:number[]){ console.log(`${name}班有${ages.length}`) let sum=0; for(let el of ages){ sum+=el } console.log(`年龄总和:${sum},平均数${sum/ages.length}`) return sum/ages.length } let avgAge=ages('鸿蒙',12,13,14,15,19) //有void就不能有返回值 function vo():void{ } let ab1=10 function ab(){ let ab1=11 return ab1+10; } //使用函数作为参数 type fc=(str:string)=>string //对字符串进行处理并返回 function syfc(f:fc){ f('王文龙') } function cl(str:string){ return str+'不是人' } function aaa(){} let str33=syfc(cl); function lam(x:number,y:number){ return x+y } let lam1=(x:number,y:number)=>{return x+y} lam1(1,2) let lam2=(x:number,y:number)=>x+y //{}省略,必须只有一行代码 //()无法省略 let lam3=(x:number,y:number)=>{ return x+y } function abc5():()=>number{ let a=0; let g=():number=>{return a++} return g; // return abc5(); } let abc6=abc5()