【TypeScript】函数 [ 编程杂谈 ]
大数据男孩 文章 正文
明妃
{{nature("2022-08-14 17:23:20")}}更新函数
函数的
参数
和返回值
是可以定义的类型的
// 命名函数
function fun(x: number, y: number): number {
return x + y;
}
// 匿名函数
let lo = function (msg: string): void { // viod 表示没有返回值
console.log('匿名函数')
}
可选参数 & 默认参数
可选参数
?
关键字
function add(x: number, y: number, flag?: boolean): number {
if (flag){
return x + y;
}else{
return x - y;
}
}
console.log(add(5,3,true)); // 8
console.log(add(5,3)); // 2
默认参数
function add(x: number, y: number = 3, flag?: boolean): number {
if (flag){
return x + y;
}else{
return x - y;
}
}
console.log(add(5,3)); // 2
console.log(add(5)); // 2
剩余参数
在
Python
、Java
里叫不定长参数
function add(x: number, ...args: number[]): number {
console.log(x, args) // 5 [4, 3, 2, 1]
args.forEach(num => {
x += num;
});
return x;
}
console.log(add(5, 4, 3, 2, 1)); // 15
函数重载
Java 的
重载
,是 函数名一样
,参数列表不一样
,而 TypeScript有点不一样
函数参数定义有类型断言
,声明重载
,规范
传入参数的类型
// 重载函数声明。相对于 规范传入参数的类型
function add(x: string, y: string): string;
function add(x: number, y: number): number;
function add(x: number | string, y: number | string): number | string {
if (typeof x === "number" && typeof y === "number") {
return x + y; // 数字类型 相加
}
if (typeof x === "string" && typeof y === "string") {
return x + ' + ' + y; // 字符串 拼接
}
}
console.log(add('**', '**')) // ** + **
console.log(add(3, 5)) // 8
{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读
{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读
{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读
{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读
目录
标签云
一言
评论 0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}