前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript入门笔记(三):函数

TypeScript入门笔记(三):函数

作者头像
王小婷
发布2020-02-11 16:10:25
4340
发布2020-02-11 16:10:25
举报
文章被收录于专栏:编程微刊编程微刊

TypeScript学习手册: https://www.tslang.cn/docs/handbook/basic-types.html

一:定义函数的方法

1:一般函数定义的方法(es5)

代码语言:javascript
复制
//函数声明法
 function run(){
    return 'run';
}
//匿名函数
 var  run2=function(){
    return 'run2';
 }

2:ts里面定义函数的方法 函数声明法

代码语言:javascript
复制
//传递参数和返回值都要进行指定类型
//返回类型必须是string类型,不能写成别的数据类型,否则会报错
 function run():string{
     return '123';
  }
 run();
 console.log(run())

匿名函数的写法

代码语言:javascript
复制
 var  run2=function():string{//指定返回值类型为string字符串类型
     return '1243';
  }

 run2(); //调用方法
 console.log(run2())

或者指定返回值类型为number类型

代码语言:javascript
复制
var  run2=function():number{//指定返回值类型为number类型
    return 234;
 }

run2();//调用方法
console.log(run2())

注意:

代码语言:javascript
复制
//没有参数返回的时候,要定义返回的数据类型
var  fun2=function():number{
 return 123;
}
alert(fun2());

3:ts定义方法传参,参数是有类型的

代码语言:javascript
复制
//声明式
function  getInfo(name:string,age:number):string{
    return   `${name} --- ${age}`;
}
console.log(getInfo('zhang',23));


//匿名式定义法
 var getInfo = function(name:string,age:number):string{
     return   `${name} --- ${age}`;
  }
 console.log(getInfo('zhang',23));


//没有返回值的方法,void表示没有返回值
function  run():void{
 console.log('runnn')
}
run();
二:函数方法可选参数

es5里面方法的实参和形参可以不一样,但是ts中必须一样,如果不一样,必须配置可选参数。 方法可选参数,用问号表示,注意:可选参数必须配置到最后一个位置。

代码语言:javascript
复制
function  getInfo(name:string,age?:number):string{
    if(age){
        return   `${name} --- ${age}`;
    }else{
        return   `${name} ---年龄保密}`;
    } 
 }
 console.log(getInfo('zhang'));
 console.log(getInfo('zhang' ,2345));

 //如果调用函数的时候,不传第二个参数,则要在第二个函数age?上加一个问号。
 //问号就表示这个age可以传,可以不传。
三:函数方法默认参数

es5里面没有办法设置默认参数,es6和ts中都可以设置默认参数,如果没有传年龄的参数,则默认为number=20,如果传参数,就是传的那个年龄的参数,和上面的可选参数是类似的。

位置可以放在第一个参数,也可以放在最后一个参数的位置。

代码语言:javascript
复制
function  getInfo(name:string,age:number=20):string{
    if(age){
        return   `${name} --- ${age}`;
    }else{
        return   `${name} ---年龄保密}`;
    }
     
 }
 console.log(getInfo('zhang'));
 console.log(getInfo('zhang' ,23));
四:函数方法剩余参数

求和:

代码语言:javascript
复制
function   sum(a:number,b:number,c:number,d:number){
    return a+b+c+d
    }
    sum (1,2,3,4);
    console.log(sum (1,2,3,4,));

同理:求积

代码语言:javascript
复制
function   sum(a:number,b:number,c:number,d:number){
return a*b*c*d
}
sum (1,2,3,4);
console.log(sum (1,2,3,4,));

三点运算符,接收形参传过来的值(剩余参数)(把sum里面所有传过来的参数全部赋值给result数组)

代码语言:javascript
复制
//三点运算符,接收形参传过来的值,
function   sum(...result:number[]):number{
   var sum=0;
//遍历result,拿到值
   for(var i=0;i<result.length;i++){
       sum+=result[i]
   }
   return sum;
    }
    sum (1,2,3,4,3);
    console.log(sum (1,2,3,4,3));

另一种写法,把1赋给a,2赋给b,后面三个数赋给...result

代码语言:javascript
复制
//另一种写法

function   sum(a:number,b:number,...result:number[]):number{
    //把1赋值给a,把2赋值给b,把后面三个数赋值给三点运算符
    var sum=a+b;
    for(var i=0;i<result.length;i++){
        sum+=result[i]
    }
    return sum;
     }
     sum (1,2,3,4,3);
     console.log(sum (1,2,3,4,3));
五:TypeScript的函数重载

实现java里面的面向对象的一种编程的体验,ts为了兼容es5和es6重载的写法和Java中式有一定的区别的。

代码语言:javascript
复制
// ts重载,通过为同一个函数提供多个函数类型定义来实现多种功能的目的
//重载就相当于同名的函数,当es5中出现同名方法,下面的会替换上面的方法
function css(config){
}
function css(config,value){ }

TypeScript的重载,分别返回了字符串(王小婷)和number类型(20)

代码语言:javascript
复制
function  getInfo(name:string):string;
function  getInfo(age:number):number;
function  getInfo(str:any):any{
    if(typeof  str==='string'){
        return  '我叫:'+str;
    }else{
        return '我年龄:' +str;
    }
}
console.log(getInfo('王小婷'));
console.log(getInfo(20));

参考链接:https://www.bilibili.com/video/av38379328?p=1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:定义函数的方法
  • 二:函数方法可选参数
  • 三:函数方法默认参数
  • 四:函数方法剩余参数
  • 五:TypeScript的函数重载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档