命名函数
function add(x:number,y:number):string{
return 'hello typescript';
}
匿名函数
var myAdd=function(x:number,y:number):string{
return 'hello typescript';
}
指定函数的参数意义
var myDoc:(name:string,age:number)=>number=function(n:string,a:number):number{
return a;
}
函数的可选参数
function buildName(firstName:string,lastName?:string){
if(lastName){
return firstName+" "+lastName;
}else{
return firstName;
}
}
var result1=buildName("jason","john");
var result2=buildName("jason");
函数的默认参数
function buildName(firstName:string,lastName="john"){
return firstName+" "+lastName;
}
var result1=buildName("jason");
var result2=buildName("jason","mike");
函数的可变参数
function peopleName(firstName:string,...resetName:string[]){
return firstName+" "+resetName.join("-");
}
var result=peopleName("jason","blue","blond","issie","danny");
document.getElementById("pid").innerHTML=result;
lambads和this关键字的使用var people={
name:["jason","issie","danny","blue"],
getName:function(){
return ()=>{
var i=Math.floor(Math.random()*4);
return {
n:this.name[i]
}
}
}
}
var myName=people.getName();
alert("名字:"+myName().n);
函数的重载
function attr(name:string):string;
function attr(age:number):number;
function attr(nameorage:any):any{
if(nameorage && typeof nameorage==="string"){
alert("姓名");
}else{
alert("年龄");
}
}
//attr("jason");
attr(10);