Typescript学习笔记——Typescript中的函数
一、函数的定义
// es5定义函数的方法
// 函数声明法
function fun(){
return 'run';
// 匿名函数
var run2=function(){
return 'run';
// ts中定义函数的方法
// 函数声明法
function fun():string{
return 'run';
// 匿名函数
var run2=function():number{
return 123;
// ts中定义方法传参
// 函数声明法
function getInfo(name:string,age:number):string{
return `${name} --- ${age}`;
// 匿名函数
var getInfo=function(name:string,age:number):string{
return `${name} --- ${age}`;
// 没有返回值的方法
function run:void(){
console.log('run')
// 方法可选参数
// es5里面方法的实参和行参可以不一样,但是ts中必须一样,如果不一样就需要配置可选参数
function getInfo(name:string,age?:number):string{
if(age){
return `${name} --- ${age}`;
}else{
return `${name} --- 年龄保密`;
}
// 注意可选参数必须配置到参数的最后面
// 默认参数
// es5里面没法设置默认参数,es6和ts中都可以设置默认参数
function getInfo(name:string,age:number=20):string{
if(age){
return `${name} --- ${age}`;
}else{
return `${name} --- 年龄保密`;
}
// 剩余参数
// ...三点运算符 接受形参传过来的值
function sum(...result:number[]):number{
var sum=0;
for(var i=0;i sum+=result[i]; } return sum; function sum(a:number,b:number,...result:number[]):number{ var sum=a+b; for(var i=0;i sum+=result[i]; } return sum; // 函数重载 // java中的方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数的重载的情况 // typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的 // ts为了兼容es5以及es6重载的写法和java中有区别 // es5中出现同名方法,下面的会替换上面的方法 function css(config){ function css(config,value){ // ts中的重载 function getInfo(name:string):string; funciton getInfo(age:number):number; funciton getInfo(str:any):any{ if(type str==='string'){ return '我叫:'+str; }else{ return '我的年龄是'+str; } // 箭头函数 es6 箭头函数里面的this指向上下文 setTimeout(function(){ alert('run') },1000) setTimeout(()=>{ alert('run') },1000)