函数
基本介绍
封装了一些代码,需要时调用
function add1(x:string,y:string): string{
return x + y
}
console.log(add1("10","100"))
/*
* 函数完整命名
* add2 => 变量名 => 函数add2
* (x:number,y:number) => number 当前这个函数类型
* function (x:number,y):number{ return x + y } 就是函数
* */
const add2:(x:number,y:number) => number = function (x:number,y):number{
return x + y
}
console.log(add2(10,100))
/*
* 输出
* 10100
* 110
*/
可选参数与默认参数
- 可选参数:在定义函数时,函数参数后面使用 ? 进行修饰,表示这个参数可传可不穿
- 默认参数:也就是函数体内部有默认参数,如果没有参数传递进来,就使用默认参数
function fullName(firatName:string="东方", lastName ? : string) {
if(lastName){
console.log(firatName + '-' + lastName)
} else {
return firatName
}
}
console.log(fullName())
fullName("东方","不败")
fullName("西门","吹雪")
/*
* 输出
* 东方
* 东方不败
* 西门吹雪
*/
剩余参数
- 在 JavaScript 里,你可以使用 arguments 来访问所有传入的参数。
- 在 TypeScript 里,你可以把所有参数收集到一个变量里,语法定义形参时末尾…参数名[]
function str(str1:string,...msg:string[]){
console.log(str1)
console.log(msg)
}
str("a","b","c","d")
/*
* 输出
* a
* [ 'b', 'c', 'd' ]
*/
函数重载
function add(str1: string,str2: string): string //函数重载
function add(str1: number,str2: number): number //函数重载
function add(str1:string | number,str2:string | number):string | number {
if(typeof str1=== "string" && typeof str2 === "string") {
return str1 + str2
}else if(typeof str1 === "number" && typeof str2 === "number") {
return str1 + str2
}
}
console.log(add("10", "100"))
console.log(add(10,100))
// console.log(add("10",10)) //这两个对于函数重载来说没有对应的类型
// console.log(add(10,"100"))