- 函数定义:JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数。
function say1(name:string):string{
return "hello "+name
}
say1("wangcai")
console.info(say1("wangcai")) //hello wangcai
let say2 = function (name:string):string{
return "hello " + name;
}
console.info(say2("xiaoqiang")); //hello xiaoqiang
- 利用type定义类型别名
type sayType = (x: string, y: string) => string
let say: sayType = function (firstname, lastname) {
return firstname + lastname;
}
console.info(say("张", "san")) //张san
- 函数默认参数
function say(name:string="wangcai",age:number=20):void{
console.info(name,age)
}
say(); //wangcai 20
say("xiaoqiang",24); //xiaoqiang 24
- 函数的可选参数
function say (name:string, age?:number) :void{
console.info(name, age);
}
say("wangcai", 20) ; //wangcai 20
say("wangcai"); //wangcai undefined
- 函数剩余参数
function sum(name:string,...numbers):void{
console.info(name,numbers) //wangcai [ 1, 2, 3, 4, 5 ]
}
sum("wangcai",1,2,3,4,5)
- 函数的重载
---JAVA中的函数重载:函数名一样,函数的形参不一样(个数不一样,类型不一样)
// say表示函数名,形参的个数不一样
function say(name:string):void{}
function say(name:string,age:number):void{}
// say表示函数名,形参的类型不一样
function say(name:string):void{}
function say(name:number):void{}
say("hello")
say("wangcai",100)
---TypeScripet中的函数重载:这里的方法是为同一个函数提供多个函数类型定义来进行函数重载
let obj = {name:"wangcai",age:20}
function attr(val:string) :void
function attr(val:number) :void
function attr(val:any){
if(typeof val === "string"){
obj.name = val
} else if(typeof val === "number"){
obj.age = val
}
}
attr("xiaoqiang")
attr(21)
console.info(obj) // { name: 'xiaoqiang', age: 21 }