web前端全系列 教程
1839个小节阅读:2243.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
函数的参数在ES6中就有很大的改动了,在TypeScript中也依然适用
前面提到,输入多余的(或者少于要求的)参数,是不允许的。那么如何定义可选的参数呢?
我们用 ?
表示可选的参数
xxxxxxxxxx
const add = (x:number, y:number,z?:number) =>{
return x + y
}
add(10,20)
add(10,20,30)
温馨提示
可选参数必须接在必需参数后面,可选参数后面不允许再出现必需参数了
在 ES6 中,我们允许给函数的参数添加默认值,TypeScript 会将添加了默认值的参数识别为可选参数
xxxxxxxxxx
function info(name: string, age: number = 20) {
return name + age
}
info("iwen")
info("iwen",30)
此时就不受「可选参数必须接在必需参数后面」的限制了
ES6 中,可以使用 ...rest
的方式获取函数中的剩余参数(rest 参数)
xxxxxxxxxx
function push(array:any[], ...items:any[]) {
items.forEach(function(item) {
array.push(item);
});
return array
}
let a: any[] = [];
const currentArray = push(a, 1, 2, 3);
注意,rest 参数只能是最后一个参数
重载允许一个函数接受不同数量或类型的参数时,作出不同的处理
xxxxxxxxxx
function reverse(x: number | string): number | string | void {
if (typeof x === 'number') {
return Number(x.toString().split('').reverse().join(''));
} else if (typeof x === 'string') {
return x.split('').reverse().join('');
}
}
然而这样有一个缺点,就是不能够精确的表达,输入为数字的时候,输出也应该为数字,输入为字符串的时候,输出也应该为字符串
xxxxxxxxxx
function reverse(x:number):number;
function reverse(x:string):string;
function reverse(x:number|string): number | string |void{
if (typeof x === 'number') {
return Number(x.toString().split('').reverse().join(''));
} else if (typeof x === 'string') {
return x.split('').reverse().join('');
}
}
const numReverse = reverse(123);
const stringReverse = reverse("Hello");