博客详情

typescript(七)--ts中接口(函数型接口) (原创)

作者: 朝如青丝暮成雪
发布时间:2018-07-15 12:15:30  文章分类:typescript   阅读(1329)  评论(0)

如题,本篇我们介绍下ts中函数型接口。

ts中函数型接口,非常类似于java、c#中使用lambda表达式传入匿名函数。因为对象中仅包含已个函数,这个对象的全部意义也仅在于那个可被外部调用的函数,故而称之为函数型接口。

05_interface_func.ts

/*
* ts中接口
*  函数型接口 ,非常类似于java、c#中使用lambda表达式传入匿名函数
*
* */
//
// //对两个数进行运算得到另一个数  函数型接口
interface  CalcTwo{
    (a:number,b:number):number;
}


/**
 * 计算数组被某种算法运算的结果
 * @param {number[]} arr  数组
 * @param {CalcTwo} calc  用户指定的算法函数
 * @param {number} initVal  传入初始值
 * @returns {number}  得到最终运算结果
 */
 function calcArr(arr:number[],calc:CalcTwo,initVal:number):number{
       var result=initVal;
      arr.forEach((value)=>{
          result = calc(result,value);
      });

     return result;
 }

 var arr:number[]=[1,3,5,7,9];
 var  add=function(a:number,b:number):number{
      return a+b;
  };

 var  multiply=function(a:number,b:number):number{
     return a*b;
 };
console.log("相加",calcArr(arr, add, 0));//25
 console.log("相乘",calcArr(arr, multiply, 1));//945
//或者直接传入一个匿名函数亦可
var s1=calcArr(arr,function(a,b){
    return a*b;
},1);
console.log("s1",s1);//945

 var s2=calcArr(arr,function (a,b) {
     return (a+1)*(b+1);
 },1);
console.log("s2",s2);//10170


关键字:  ts  typescript
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号