(1)函数的定义

函数声明法

// function run():string{
// return 'run';
// } //错误写法,返回类型错误
// function run():string{
// return 123;
// }

匿名函数

// var fun2=function():number{
// return 123;
// } // alert(fun2()); /*调用方法*/

ts中定义方法传参

    /*
function getInfo(name:string,age:number):string{ return `${name} --- ${age}`;
} alert(getInfo('zhangsan',20)); */ //匿名方法
var getInfo=function(name:string,age:number):string{
return `${name} --- ${age}`;
} alert(getInfo('zhangsan',40)); //没有返回值的方法
function run():void{
console.log('run')
}
run();

(2)方法可选参数

es5里面方法的实参和行参可以不一样,但是ts中必须一样,如果不一样就需要配置可选参数

function getInfo(name:string,age?:number):string{
if(age){
return `${name} --- ${age}`;
}else{
return `${name} ---年龄保密`;
}
} alert(getInfo('zhangsan'))
alert(getInfo('zhangsan',123))

(3)默认参数 可选参数

es5里面没法设置默认参数,es6和ts中都可以设置默认参数

 function getInfo(name:string,age:number=20):string{
if(age){
return `${name} --- ${age}`;
}else{
return `${name} ---年龄保密`;
}
}

(4)剩余参数,三点运算符

/*
function sum(...result:number[]):number{
var sum=0; for(var i=0;i<result.length;i++){ sum+=result[i];
} return sum; }
alert(sum(1,2,3,4,5,6)) ;
*/
//剩余参数(三点运算符)必须在最后
function sum(a:number,b:number,...result:number[]):number{
var sum=a+b; for(var i=0;i<result.length;i++){
sum+=result[i];
}
return sum;
} alert(sum(1,2,3,4,5,6)) ;

(5)函数重载

  • java中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
  • typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。

ts为了兼容es5 以及 es6 重载的写法和java中有区别。

//es5中出现同名方法,下面的会替换上面的方法
/*
function css(config){ } function css(config,value){ }
*/

es5出现同名方法会覆盖前面,下面看ts中的重载

示例1:

function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any{ if(typeof str==='string'){ return '我叫:'+str;
}else{ return '我的年龄是'+str;
} } alert(getInfo('张三')); //正确 alert(getInfo(20)); //正确 alert(getInfo(true)); //错误写法

示例2:

               function getInfo(name:string):string;
function getInfo(name:string,age:number):string;
function getInfo(name:any,age?:any):any{
if(age){ return '我叫:'+name+'我的年龄是'+age;
}else{ return '我叫:'+name;
}
} // alert(getInfo('zhangsan')); /*正确*/ // alert(getInfo(123)); 错误 // alert(getInfo('zhangsan',20));

(6)箭头函数

注意:this指向的问题 箭头函数里面的this指向上下文

//es5
// setTimeout(function(){
// alert('run')
// },1000) setTimeout(()=>{
alert('run')
},1000)

typescript - 3.函数的更多相关文章

  1. TypeScript 中函数的理解?与 JavaScript 函数的区别?

    一.是什么 函数是JavaScript 应用程序的基础,帮助我们实现抽象层.模拟类.信息隐藏和模块 在TypeScript 里,虽然已经支持类.命名空间和模块,但函数仍然是主要定义行为的方式,Type ...

  2. TypeScript Function(函数)

    在JavaScript中,函数是构成任何应用程序的基础块.通过函数,你得以实现建立抽象层.模仿类.信息隐藏和模块化.在TypeScript中,虽然已经存在类和模块化,但是函数依旧在如何去"处 ...

  3. TypeScript入门-函数

    ▓▓▓▓▓▓ 大致介绍 TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用.TypeScript中的函数也包括JavaScript中最常见的两种函数 functio ...

  4. TypeScript 之 函数

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Functions.html 为函数定义类型 为函数添加类型: fu ...

  5. 《前端之路》- TypeScript(二) 函数篇

    目录 一.定义函数方法 二.定义函数传参 三.可选传参 四.默认传参 五.传递剩余参数 六.函数重载 七.箭头函数 八.总结 一.定义函数方法 在 es5 中定时函数的方法有 命名函数和函数表达式(匿 ...

  6. TypeScript 素描 - 函数

    /* 函数和javaScript并没有太大差别,只是增加了额外的功能,使函数有 更为强大的功能而且更易用使用 */ //现在支持函数的参数指定类型,在前面的博文中大家应该已经看到 //还可以指定函数的 ...

  7. typescript的函数

    1:默认参数(传入值会覆盖默认参数,不传值也行) function getinfo(name:string,age:number=20):string{ return `${name}---${age ...

  8. TypeScript之函数

    1.函数声明 与javascript一样,ts的函数声明也分为两种:函数声明,函数表达式 1)函数声明: function fn(age:number):string{ return `age is ...

  9. TypeScript中将函数中的局部变量“导出”的方法

    首先是在模块a.js中声明一个可导出(export)的数据结构,例如: export class ModelInfo{ id: string; name:string; } 其次是在模块b中声明可导出 ...

随机推荐

  1. 计算地图上两点间的距离PHP类

    计算地图上两点间的距离,使用的是谷歌地图 <?php class GeoHelper { /** * @param int $lat1 * @param int $lon1 * @param i ...

  2. MySQL MHA候选主库选择

    MHA在选择新主库时,会将所有存活的从库分为下面几类: 存活从库数组:挑选所有存活的从库 最新从库数组: 挑选Master_Log_File+Read_Master_Log_Pos最高的从库 优选从库 ...

  3. Flask入门很轻松 (一)

    转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/10956837.html Flask诞生于2010年,是Armin ronacher(人名)用 Py ...

  4. centos 宝塔 使用命令行快速导入数据库sql

    先将sql文件上传到服务器,例如上传到www文件夹 然后打开命令行工具 输入 mysql -u 数据库用户名 -p 然后复制密码进去 然后输入 use 数据库名 回车 然后输入 source /www ...

  5. Python并发编程-GIL全局解释器锁

    Python并发编程-GIL全局解释器锁 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.GIL全局解释器锁概述 CPython 在解释器进程级别有一把锁,叫做GIL,即全局解释 ...

  6. SpringCloud2.0 Hystrix Ribbon 基于Ribbon实现断路器 基础教程(六)

    1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集 ...

  7. SQL进阶系列之11让SQL飞起来

    写在前面 SQL的性能优化是数据库使用者必须面对的重要问题,本节侧重SQL写法上的优化,SQL的性能同时还受到具体数据库的功能特点影响,这些不在本节讨论范围之内 使用高效的查询 参数是子查询时,使用E ...

  8. kafka题目

    1. Kafka的用途有哪些?使用场景如何?2. Kafka中的ISR.AR又代表什么?ISR的伸缩又指什么3. Kafka中的HW.LEO.LSO.LW等分别代表什么?4. Kafka中是怎么体现消 ...

  9. Pycharm 切换Git 远程分支

    1.git 仓库新建远程分支以后,pycharm 本地没有办法查看到对应的分支,需要切换到本地代码的git所在的目录执行下"git remote update origin --prune” ...

  10. django-mysql事务

    django文档:https://yiyibooks.cn/xx/django_182/topics/db/transactions.html mysql事务 1) 事务概念 一组mysql语句,要么 ...