TypeScript入门笔记(三):函数

简介: TypeScript入门笔记(三):函数
一:定义函数的方法

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

//函数声明法
 function run(){
    return 'run';
}
//匿名函数
 var  run2=function(){
    return 'run2';
 }

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

函数声明法

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

匿名函数的写法

 var  run2=function():string{//指定返回值类型为string字符串类型
     return '1243';
  }
 run2(); //调用方法
 console.log(run2())

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

var  run2=function():number{//指定返回值类型为number类型
    return 234;
 }
run2();//调用方法
console.log(run2())

注意:

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

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

//声明式
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中必须一样,如果不一样,必须配置可选参数。

方法可选参数,用问号表示,注意:可选参数必须配置到最后一个位置。

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,如果传参数,就是传的那个年龄的参数,和上面的可选参数是类似的。


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

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));

四:函数方法剩余参数

求和:

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,));


同理:求积

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数组)

//三点运算符,接收形参传过来的值,
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

//另一种写法
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中式有一定的区别的。

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

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

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));

相关文章
|
2月前
|
JavaScript
typeScript基础(3)_ts函数默认值和可选参数
本文介绍了在TypeScript中如何使用函数的默认值和可选参数。展示了如何为函数参数指定默认值,使得在调用函数时可以省略某些参数,以及如何定义可选参数。
172 2
|
1月前
|
移动开发 JavaScript 前端开发
TypeScript:数组类型&函数使用&内置对象
本文介绍了 TypeScript 中的数组类型、对象数组、二维数组、函数、函数重载、内置对象等概念,并通过代码示例详细展示了它们的使用方法。还提供了一个使用 HTML5 Canvas 实现的下雨效果的小案例。
|
1月前
|
JavaScript 前端开发 编译器
【小白入门】 浏览器如何识别Typescript?
【10月更文挑战第1天】浏览器如何识别Typescript?
|
2月前
|
JavaScript 前端开发 编译器
TypeScript,从0到入门带你进入类型的世界
该文章提供了TypeScript的入门指南,从安装配置到基础语法,再到高级特性如泛型、接口等的使用,帮助初学者快速掌握TypeScript的基本用法。
|
2月前
|
JavaScript
typeScript基础(7)_函数的类型
本文介绍了TypeScript中函数的类型,包括函数声明与函数表达式的类型注解,如何定义函数的参数类型、返回类型,以及可选参数和参数默认值。还探讨了函数的剩余参数、如何使用接口定义函数的形状,以及函数重载的概念和实践。
31 0
|
3月前
|
存储 JavaScript 前端开发
深入浅出TypeScript | 青训营笔记
深入浅出TypeScript | 青训营笔记
34 0
|
4月前
|
JavaScript 前端开发 程序员
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
81 0
|
4月前
|
JavaScript
TypeScript(六)函数
TypeScript(六)函数
29 0
|
5月前
|
JavaScript 前端开发 程序员
typescript入门笔记分享
typescript入门笔记分享
31 0
|
5月前
|
JavaScript 前端开发 API
TypeScript 函数
TypeScript 函数
下一篇
无影云桌面