函数定义:(必须指定返回值的类型,若无返回值返回值类型定义未void)
函数声明:
function testFn():string {
return 'testfn'
}
匿名函数定义:
var testFn1 = function():void{
}
定义方法传参
function test2Fn(name:string,age:number):string{
return `${name}--${age}`
}
test2Fn('mariah',108);
可选参数
ES5中方法的实参和形参可以不一样,ts中必须一样,如果不一样,就需要配置可选参数,可选参数必须配置到参数的后面
function test3Fn(name:string,age?:number):string{
if(age){
return `姓名:${name}---年龄:${age}`
}else{
return `姓名:${name}---年龄:保密`
}
}
test3Fn('mariah')
默认参数
function test4Fn(name:string='mariah',age:number=20):string{
return `姓名:${name}---年龄:${age}`
}
test4Fn(undefined,30) //第一个参数有设置默认值,可不传参,第二个参数为必传
test4Fn('zhang',30)
剩余参数
function sum(a:number,b:number,...arr1:number[]):number{
let val = a;
for(var i=0;i<arr1.length;i++){
val+=arr1[i]
}
return val
}
sum(1,2,3,4)
函数重载
typescript中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
function getInfo(name:string):string;
function getInfo(age:number):number;
function getInfo(str:any):any{
if(typeof str=='string'){
return `我的名字是:${str}`
}else{
return `我的今年${str}岁了`
}
}
console.log(getInfo(50))
//****************************************************
function getInfo(name:string):string;
function getInfo(name:string,age:number):string;
function getInfo(name:any,age?:any):any{
if(age){
return `名字:${name},年龄:${age}`
}else{
return `名字:${name},年龄:保密`
}
}
console.log(getInfo('zhangmeimei',10))