声明函数
function run() :String {
return '23'
}
匿名函数
var run = function() :string{
return 'q2'
}
函数带参数
function run(A:string , B :number):string{
return `{A} -- {B}`
}
匿名函数带参
let run =function (A:string , B :number):string{
return `{A} -- {B}`
}
没有返回值的函数
function run(A:string , B :number):void{
console.log( `{A} -- {B}`)
}
实参和形参
// es5内方法的实参和形参是可以不一致的,ts则需要一致,不然编译报错
// 重点:可选参数后:前加?即可
function run(A?:string , B?:number):string{
return `{A} -- {B}`
}
run('a',123)
默认参数,当参数定义默认参数也不会报错
function run(A?:string , B=30):string{
return `{A} -- {B}`
}
run('a')
剩余参数
let sum =function(a:number , ...result:number [] ):number{
let sum = a;
for(let i = 0 ; i< result.length ; i ++){
sum += i
}
return sum
}
sum(1,2,3,4)
解析:1赋值给a ,后面的参数都赋值给result 若,没有a参数,及所有参数赋值给result
函数的参数是可以任意添加的,然后都会按需分配参数
eg: function(a:number , b :number, ...result:number [] ,c:number ) ,这里只需要将a+b+c提前赋值给sum就可以了
调用sum(这里的参数也是可以任意添加删除的,都不会在运行中报错) 这里运用到的是... 三点运算符,将一个数组变成参数序列
三点函数(…)
es6
函数重载
function run(str :string ) :string;
function run(str :number) : number;
function run(str :any) :any{
if(str === 'string'){
alert('我是' + str)
}else{
alert(str)
}
}
run(10)
run('a')
// run('30')
// run(true) //错误写法