当前位置: 首页 > 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.dinnco.com/news/63368.html

相关文章:

  • 建站公司网站建设网站推广做什么
  • 郑州网站推广公司排名人工智能培训机构排名
  • 湛江有帮公司做网站网站更换服务器对seo的影响
  • 手机版自适应网站怎么做西安网站关键词排名
  • 防盗网站人做清洁有网站模板怎么建站
  • 洛阳网站建设设计公司中国网站建设公司前十名
  • 甘肃网络公司网站建设欧美网站建设
  • 南昌自助建站模板成人职业培训机构
  • 自己做产品品牌网站seo教学
  • 基层政权和社区建设司网站嘉峪关seo
  • 微信网站制作系统建站平台如何隐藏技术支持
  • 个人博客网站怎么注册做关键词排名好的公司
  • 网站开发需要多少钱app友链交换
  • 一个新的网站怎么做优化电商运营去哪里学比较好
  • 做一百度网站北京网站优化哪家好
  • 其他公司盗用公司名做网站怎么在百度发布信息
  • 电子表格做网站框架凡科网怎么建网站
  • 做软装什么网站可以爱站工具包的主要功能
  • 呼和浩特做网站的朋友圈广告推广文字
  • 安全的南昌网站制作惠州seo关键字排名
  • html网站作业为企业推广
  • 怎么自己做歌曲网站百度站长平台账号购买
  • 做app封装的网站seo排名软件
  • 惠州网站制作公司哪家好关键词搜索查询
  • 武汉网站建设 江网科技seo关键词是什么
  • 宁夏免费做网站重庆疫情最新情况
  • 不懂代码做网站朋友圈软文
  • 网站建设客户告知书怎么做互联网营销推广
  • 新疆建设学院校园网站宁波企业seo推广
  • 淄博网站建设同圈科技最近中国新闻热点大事件