(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. centos7 ipython安装

    ##下载yum源(Centos 7 为例)[root@localhost ~]# wget http://mirror.centos.org/centos/7/extras/x86_64/Packag ...

  2. asp.net core 默认采用小驼峰命名和自定义模型验证

    services.AddMvc(options => { options.Filters.Add<ApiExceptionAttribute>(); }).SetCompatibil ...

  3. 事务@Transactional

    在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeExcep ...

  4. c语言实现基本的数据结构(二) 链表(包括链表的三种简单排序算法)

    #include "stdafx.h" #include <stdlib.h> //创建一个节点,data为value,指向NULL Node* Create(int ...

  5. python内置模块笔记(持续更新)

    常用函数name = '{wh}my \t name is {name},age is {age}.' print(name.capitalize()) # 字符串的开头字母大写 print(name ...

  6. AD-logon workstation

    默认AD登录到限制为64个 原因 发生此问题的原因是User-Workstations属性的Range-Upper值为1,024个字符.使用Active Directory用户和计算机输入NetBIO ...

  7. ES6新特性之 let 、const

    在 ES6之前,ES5中js只有全局作用域和函数作用域,作用域是一个独立的地盘,让变量不外泄出去,但是上例中的变量就外泄了出去,所以此时 JS 没有块级作用域的概念. 全局作用域就是最外层的作用域,如 ...

  8. zabbix4.2.5默认告警模板

    产生告警: Problem: {EVENT.NAME} Problem started at {EVENT.TIME} on {EVENT.DATE} Problem name: {EVENT.NAM ...

  9. Convert 输入字符串的格式不正确

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  10. python遇到动态函数---TypeError: unbound method a() must be called with A instance as first argument (got nothing instead)

    TypeError: unbound method a() must be called with A instance as first argument (got nothing instead) ...