函数
函数的
参数
和返回值
是可以定义的类型的
// 命名函数 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
版权声明:《 【TypeScript】函数 》为明妃原创文章,转载请注明出处!
最后编辑:2022-3-13 11:03:53