鸿蒙初开,开天辟地
TS语法之函数
Function函数
声明函数需要定义函数的关键字,函数名称,函数体,函数体返回值,参数名称,参数类型,函数返回值类型
function sum(a:number,b:number):number{ return a + b; } console.log(sum(1,2));
1+2=3
这里我们拿面向对象编程的语言JAVA做一下对比
public int sum(int a,int b){ return a+b; }
TS函数的特殊语法
可选参数
可以通过参数名后面的?进行标识,如gender?参数
function getPersonInfo(name:string,age:number,gender?:string):string{ if(gender === undefined){ gender = '武装直升机'; } return gender; }
使用可选参数实现不传参数
可选参数在方法被调用且为传递该值时,它的默认值是undefined(此处和JS相同)
默认参数
可以在函数的参数列表为该值提供一个默认值,如果没有被赋值,就使用这个默认值
function getPersonInfo(name:string,age:number,gender:string='沃尔玛塑料袋'):string{ return `name:${name},age:${age},gender:${gender}`; } console.log(getPersonInfo('哈哈',12));
使用默认参数实现初始值
联合类型
一个函数可能用于处理不同类型的值,这种情况下可以使用联合类型
function printInfo(message:string | number){ console.log(message) } printInfo(123); printInfo('性别:武装直升机');
联合类型
任意类型
一个函数有概率处理任意不同类型的值,直接用任意类型
function print(message:any){ console.log(message); } print("Hello World"); print(10.1);
任意类型
注:任意类型any和联合类型还可以用来声明参数,但是不是很推荐
let mamba:any = '孩子们是我'; let kobe:string|number = '孩子们,这并不好笑'; console.log(mamba+":"+kobe);
用联合类型和任意类型来声明变量man
函数返回值
特殊类型
若函数没有返回值,则可以使用void作为返回值
function Helicopter():void{ console.log("孩子们,这并不好笑"); } Helicopter();
void作为返回值
类型推断
函数的返回值也可以根据return自动推断出来,也可以不写
function Helicopter(){ console.log("孩子们,这并不好笑"); } function mambaOut(a:number,b:number){ return a+b; } Helicopter(); console.log(mambaOut(8,24));
函数返回值类型自动推断
函数声明特殊语法
匿名函数
匿名函数语法结构简单,适合一次性使用的场景
let numbers:number[] = [1,2,3,4,5]; numbers.forEach(function(number){ console.log(number); })
匿名函数
箭头函数
匿名函数可以进一步简化,只保留参数列表和函数体两个核心部分,两者用=>连接
let numbers:number[] = [1,2,3,4,5]; numbers.forEach((number)=>{console.log(number);});
箭头函数
特殊情况
我们可以把方法传递进去让它执行,但是这里不能是print(),不然就是方法的返回值传递回来了
let numbers:number[] = [1,2,3,4,5]; function print(message:any){ console.log(message); } numbers.forEach(print);
箭头函数,传递方法
模板字符串
模板字符串,字符串内的值会自动取值赋值实现传递参数
function getPersonInfo(name:string,age:number,gender?:string):string{ if(gender === undefined){ gender = '武装直升机'; } return `name:${name},age:${age},gender:${gender}`; } console.log(getPersonInfo('man! what can i say?',41));
使用模板字符串让它自动取值赋值














1921

被折叠的 条评论
为什么被折叠?



