TypeScript--函数

141 阅读1分钟
  • 函数定义: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 }

www.tslang.cn/docs/handbo…