TypeScript基础1024Learning Typescript

3、Typescript 函数

2019-03-05  本文已影响3人  圆梦人生

ts中函数:

function fun1(name:string):string;
function fun1(age:number):string;
function fun1(str:any):any{
   if(typeof str === 'string'){
      return 'string == ' + str;
   }else {
       return 'number == ' + str;
   }
}
function fun1(name:string):string;
function fun1(name:string, age:number):string;
function fun1(str:string, age?:number):any{
  if(age){
    return 'string == ' + str+ ', age === '+ age;
  }else {
    return 'number == ' + str;
  }
 }

案例:

// 1、ts函数返回类型定义
function fun1():string {
    // 不能将类型“122”分配给类型“string”。ts(2322)
    // return 122;

    // 返回字符串
    return '123字符串';
}
console.log('fun1 == ', fun1());

// 2、ts匿名函数返回类型定义
let fun2 = function():number {
    return 123345
}
console.log('fun2 == ', fun2());

// 3、ts中函数参数类型定义
function fun3(name:string, age:number):string{
    return `name == ${name},age == ${age}`;
}
console.log('fun3 == ', fun3('zs', 20));

// 3、ts中匿名函数参数类型定义
let fun4 = function(age: number):number{
    return age
}
console.log('fun4 == ', fun4(123));

// 4、ts中方法可选参数,参数后跟着?号
let fun5 = function(name:string, age?:number):any{
    return 'abcdefg';
}
console.log('fun5 == ', fun5('233'));

// 5、ts中函数参数默认值
function fun6(name: string, age: number = 10):any{
    console.log(`name == ${name}, age == ${age}`);
}

fun6('zs')

// 6、ts可变参数
function fun7(age:number, ...num:number[]):number {
    let sum = age;
    for(let i=0;i<num.length;i++){
        sum+= num[i]
    }
    return sum
}
console.log('fun7 === ', fun7(1,2,3,4,5));

// 7、ts中函数的重载
function fun8(name:string):string;
function fun8(age:number):number;
function fun8(str:any):any{
    if(typeof str === 'string'){
        return 'string == ' + str;
    }else if(typeof str === 'number'){
        return 'number == ' + str;
    }else{
        return '未识别的数据';
    }
}
console.log('fun8 === ', fun8('zs'))
console.log('fun8 === ', fun8(20))
// console.log('fun8 === ', fun8(true))

// 7-2、ts中函数的重载
function fun9(name:string):string;
function fun9(name:string, age:number):string;
function fun9(name:string, age?:number):any{
    if(age){
        return `name == ${name}, age == ${age}`;
    }else{
        return `name == ${name}`;
    }
}
console.log('fun9 === ', fun9('ls', 20))

上一篇下一篇

猜你喜欢

热点阅读