TS-函数

1.TS函数

(1)JS中的函数

	function say1(name) {
	    console.log(name);
	}

匿名函数:

	let say2 = function (name) {
	    console.log(name);
	}

箭头函数:

	let say3 = (name) => {
	    console.log(name);
	}

(2)TS中的函数

	function say1(name:string):void {
	    console.log(name);
	}

匿名函数:

	let say2 = function (name:string):void {
	    console.log(name);
	}

箭头函数:

	let say3 = (name:string):void =>{
	    console.log(name);
	}

2.函数声明和重载

(1)TS函数完整格式

定义一个函数:

	let AddFun:(a:number, b:number)=>number;

根据定义实现函数:

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

调用函数:

	let res = AddFun(10, 20);
	console.log(res);

一步到位写法:

	let AddFun:(a:number, b:number)=>number =
	function (x:number, y:number):number {
	    return x + y;
	};
	let res = AddFun(20, 20);
	console.log(res);

根据函数的定义自动推导对应的数据类型:

	let AddFun:(a:number, b:number)=>number =
	    function (x, y) {
	        return x + y;
	    };
	let res = AddFun(20, 20);
	console.log(res);

(2)TS函数声明

先声明一个函数:

	type AddFun = (a:number, b:number)=>number;

再根据声明去实现这个函数:

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

调用:

	let res = add(30, 20);
	console.log(res);

根据函数定义自动推导对应的函数类型:

	type AddFun = (a:number, b:number)=>number;
	let add:AddFun = function (x, y) {
	    return x + y;
	};
	let res = add(30, 20);
	console.log(res);

(3)TS函数重载

函数的重载就是同名的函数可以根据不同的参数实现不同的功能。
定义函数的重载:

	function getArray(x:number):number[];
	function getArray(str:string):string[];

实现函数的重载:

	function getArray(value:any):any[] {
	    if(typeof value === 'string'){
	        return value.split('');
	    }else{
	        let arr = [];
	        for(let i = 0; i <= value; i++){
	            arr.push(i);
	        }
	        return arr;
	    }
	}
	let res1 = getArray(10);
	let res2 = getArray('www.it666.com');
	console.log(res1,res2);

3.可选、默认、剩余参数

(1)可选参数

	function add(x:number, y:number, z?:number):number {
	    return x + y + (z ? z : 0);
	}
	let res1 = add(10, 20);
	let res2 = add(10, 20, 30);
	console.log(res1,res2);

可选参数可以配置函数重载一起使用, 这样可以让函数重载变得更加强大。

	function add(x:number, y:number):number;
	function add(x:number, y:number, z:number):number;
	function add(x:number, y:number, z?:number) {
	    return x + y + (z ? z : 0);
	}
	let res = add(10, 20, 30);
	console.log(res);

可选参数可以是一个或多个,可选参数后面只能跟可选参数。

	function add(x:number, y?:number, z?:number):number {
	// function add(x:number, y?:number, z:number):number { // 可选参数后面只能跟可选参数
	    return x + (y ? y : 0) + (z ? z : 0);
	}
	let res = add(10); // 可选参数可以是一个或多个
	console.log(res);

(2)默认参数:

	function add(x:number, y:number=10):number {
	    return x + y;
	}
	// let res = add(10);
	let res = add(10, 30);
	console.log(res);

(3)剩余参数

	function add(x:number, ...ags:number[]) {
	    console.log(x);
	    console.log(ags);
	}
	add(10, 20, 30, 40, 50)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值