当前位置: 首页 > news >正文

福州网站建设免费咨询最近新闻热点国家大事

福州网站建设免费咨询,最近新闻热点国家大事,做网站图片多少钱,做机械的专业外贸网站有哪些基本使用 ts与js一样拥有具名函数和匿名函数两种函数类型。但是ts的函数需要提前定义好参数类型以及函数的返回值类型。 具名函数 function add(num1: number, num2: number):number {return num1 num2 }匿名函数 匿名函数的定义相对麻烦,我们需要提前定义函数的…

基本使用

ts与js一样拥有具名函数和匿名函数两种函数类型。但是ts的函数需要提前定义好参数类型以及函数的返回值类型。

具名函数

function add(num1: number, num2: number):number {return num1 + num2
}

匿名函数
匿名函数的定义相对麻烦,我们需要提前定义函数的类型

// 直接使用类型推导
//const add = (num1: number, num2: number):number => {
//    return num1 + num2
//}
// 还可以反向类型推导
//const add: (num1: number, num2: number) => number = (x, y) => x + y
const add: (num1: number, num2: number) => number = (num1: number, num2: number):number => num1 + num2

函数参数

ts里面每个函数参数都是必须的,函数参数的数量与类型必须完全一致才可以使用函数。

function add (num1: number, num2: number):number {return num1 + num2
}
// add('1')  Expected 2 arguments, but got 1.
// add('1', 1) Argument of type 'string' is not assignable to parameter of type 'number'.
add(1, 1) 

我们也可以使用?指定一个函数参数非必传,当然这种参数需要放到所有参数的末尾。

function add (num1: number, num2: number, num3?:number):number {return num1 + num2 + (num3 ? num3 : 0)
}
console.log(add(1, 1) )    // 2
console.log(add(1, 1, 1) ) // 3

我们还可以给函数参数设置默认值

function add (num1: number, num2: number, num3:number = 0):number {return num1 + num2 + num3
}
console.log(add(1, 1) )   // 2
console.log(add(1, 1, 1) )// 3

事实上如果给末尾的参数设置默认值效果是等同于在末尾使用?指定非必传参数的

在js里面如果我们并不知道将会有多少参数传入,可以使用arguments进行所有参数的接收,也可以使用es6...的方式收集到数组里。
而在ts里面我们同样可以这样操作

function add (num1: number, num2: number, num3:number = 0):number {console.log(arguments) // {‘0’: 1, '1': 2}return num1 + num2 + num3
}
console.log(add(1, 1) )
function add (num1: number, ...arg:number[]):number {console.log(arg) // [2,3,4]return num1 
}
console.log(add(1, 2, 3, 4) )

函数重载

所谓函数重载,就是指的是拥有多个函数签名,一个函数体实现。

function calculateAverage(nums: number[]): number;
function calculateAverage(str: string): number;
function calculateAverage(arrOrStr: number[] | string): number {if (Array.isArray(arrOrStr)) {let sum = arrOrStr.reduce((a, b) => a + b);return sum / arrOrStr.length;} else {let nums = arrOrStr.split(',').map(Number);let sum = nums.reduce((a, b) => a + b);return sum / nums.length;}
}console.log(calculateAverage([1, 2, 3])); // 输出结果为 2
console.log(calculateAverage("1,2,3")); // 输出结果为 2
http://www.hrbkazy.com/news/8470.html

相关文章:

  • 北海网站建设公司百度指数快刷软件
  • 为什么打开Wordpress很慢seo推广的方法
  • 做网站需要空间跟域名吗苹果cms播放器
  • 简单的app开发免费网站排名优化软件
  • 学术网站建设在线企业管理培训课程
  • 普陀区建设工程质检网站seo诊断优化专家
  • 网站建设部门宣言百度推广电话号码
  • 网站建设买什么书北京网站优化对策
  • 深圳网络推广顾问百中搜优化
  • 什么颜色做网站显的大气福州短视频seo方法
  • 响应式网站尺寸百度网盘搜索引擎入口哪里
  • oss做静态网站珠海seo排名收费
  • 广东网站建设定制百度联盟项目看广告挣钱
  • 做网站开发怎么接单北京seo服务商找行者seo
  • 怎么样自己做百度网站海淀区seo全面优化
  • 广东省住房和城乡建设局网站seo服务是什么
  • 企业网站如何设计网页网络营销方法有哪些
  • 找网站建设客户网站seo关键词
  • 接单做公司网站站群什么是搜索引擎优化的核心
  • 做网站的人跑了网站可以恢复吗杭州网络排名优化
  • 十大免费ppt网站软件开发网站建设
  • 重庆模板建站代理网上教育培训机构哪家好
  • 网站域名被黑营业推广策划方案
  • 资源站 wordpress无锡百度公司王东
  • 网站建设是专业自助建站seo
  • 东莞哪里有做企业网站的指数分布的分布函数
  • 网站只做程序员seo优化推荐
  • 北京专业网站设计报价福建seo网站
  • 广州学习做网站建设的学校域名查询网址
  • 网站建设公司做销售好不好?今日热榜