通俗易懂TypeScript系列四:函数(上)


北京八达岭长城【摘自微软Bing】

1、函数定义

在TypeScript中函数的定义中跟JavaScript一样,都支持函数声明和函数表达式写法

1、函数声明写法

function hello (){

console.log(“Hello, world”);

}

2、函数表达式写法

let hello =function(){

console.log(“Hello, world”);

}

2、可选参数

在TypeScript中每个被调用的参数都是必传的,在编译的时候会检查参数是否传值,而且参数要和定义的函数的参数个数要一致,否则编译不会通过

function hello(a : number , b : number ){

let c = a + b;

console.log(c);

}

hello(1,2,3); //报错

hello(1) ;  //报错

hello(1,2); //运行正常

实际开发中可能会遇到可选参数的场景,TypeScript给我们提供了解决方案,看代码:

function hello(a : number ,b? : number){  //看b后面的问号(?)

let c = a + b;

console.log(c);

}

hello(1,2); //运行正常

hello(1) ; //运行正常

*参数b后面加了问号(?),表示参数是可选的

注意:可选参数一定要放在必选参数的后面,可选参数放在必选参数前面 编译是不会通过的,

function hello(a?: number, b : number ){

let c = a + b;

console.log(c);

}

3、默认参数

所谓默认参数就是函数定义的时候可以初始化参数,当函数调用的时候如果没有传值或者为值为undefined时,这个参数就会给定默认值

function hello(a : number , b =2 ){

let c = a + b;

console.log(c);

}

hello(1);//运行正常

hello(1,undefinde);//运行正常

hello(1,3);//运行正常

hello(1,2,3);//报错

4、剩余参数

所谓的剩余参数当我们不知道多少参数传进来时,就可以使用剩余参数,剩余参数可以为0个或多个,看代码

function hello(a : number , …b : number[]){

console.log(b);

}

hello(1,2,3,4,5,6);//输出2,3,4,5,6

*这里的值1会赋值给a , 而剩余的值会赋值给剩余参数b ,故b打印出2,3,4,5,6 支持多个参数

注意:剩余参数必须放在函数声明的必传函数后面,否则编译无法通过

5、函数重载

函数重载跟java或者其它面向对象语言里的一样,所谓函数重载 就是一个函数提供多个函数类型声明来实现函数的重载

//1、函数重载

function hello(a: number, b: number);//重载1

function hello(a: string, b: string);//重载2

//2、这里对hello重载的实现

function hello(a: any, b: any) {

if (typeof (a) === 'number') {

console.log(a + b); //输出 3

} else {

console.log(a, ',', b); //输出Hello , world

   }

}

//3、调用函数测试

hello(1, 2); //传入number类型值

hello('Hello', 'world');//传入字符串类型

*编译器会按照你传入的参数类型来判断调用那个重载方法,运行一下试试


个人学习心得,大神路过 ,不喜勿喷  ,如果你觉得不错,欢迎点赞,订阅,分享出去给需要的人,笔者将非常感谢,如果有疑问请留言或者私信

<完>

如果你是喜欢看书的朋友,不妨点击【有惊喜】这是我在亚马逊买的电子书,都非常珍贵。希望你能喜欢

作者:小处成就大事

简介:一个喜欢分享和学习的前端开发程序猿,平时喜欢看看书,游泳,爬山,户外骑行等,期待与志同道合的你成为朋友,一起交流、一起进步。

初衷:闲时喜欢写一些文章分享,记录丰富自己。可能没有别人写得好,但是我写的每一篇都非常用心和投入。真心希望来到这里对你有所收获,我将非常开心很欣慰。

博客:小处成就大事_新浪博客

如果有志同道合的朋友不妨加微信一起交流和学习,期待你的到来


你可能感兴趣的:(通俗易懂TypeScript系列四:函数(上))