1.函数定义

1.1JavaScript中的函数

在学习TypeScript中的函数前我们先来回顾一下JavaScript中的函数定义常用的包含以下几种:

第一种:使用function关键字声明函数

function add1 (x, y) {
    return x   y
}


第二种:使用字面量方式声明函数

const add2 = function (x, y) {
    return x   y
}


第三种:使用箭头函数声明函数

const add3 = (x, y) => {
    return x   y
}


1.2TypeScript中的函数

TS中的函数声明方式与JS类似,唯一不同的就是固定了参数类型了返回值类型,如果没有返回值其返回值类型必须为void而不是留空。

接下来用 TS 的方式重新声明以上是三个函数:

第一种:使用function关键字声明函数:

/*
 语法结构如下
 function 函数名(形参1: 类型, 形参2: 类型,...): 返回值类型 {
     函数体
 }
 */
function add4(x: number, y: number): number {
    return x   y
}


第二种:使用字面量方式声明函数

/*
 语法结构如下
 const 函数名 = function (形参1: 类型, 形参2: 类型,...): 返回值类型 {
     函数体
 }
 */
const add5 = function (x: number, y: number): number {
    return x   y
}


第三种:使用箭头函数声明函数

/*
 语法结构如下
 const 函数名 = (形参1: 类型, 形参2: 类型,...): 返回值类型  => {
     函数体
 }
 */
// 3. 使用箭头函数声明函数
const add6 = (x: number, y: number): number => {
    return x   y
}


以上就是在TS中声明函数的方式。JS中还有一种参数解耦赋值的情况,这种在TS中怎么指定参数类型呢?示例代码如下:

const add7 = ({ x, y }: { x: number; y: number }): number => {
    return x   y
}

在TS中还有一种可读性更高的写法,如下所示:

const add8: (baseValue: number, increment: number) => number = function (
    x: number,
    y: number
): number {
    return x   y
}

这种方式将函数分为两个部分,=前面是函数的类型的返回值类型,后半部分才是函数定义的地方。

其实前半部分也就是为了增加代码的可读性,没有太大的实际意义。

2.可选参数和默认参数

TypeScript 里的每个函数都是必须。这并不代表不能传递null和undefined作为参数,而是是否为每个参数都传递了值,如果不一一对应,则会抛出异常。简单的说就是形参个数与实参个数一致。

示例代码如下所示:

function add(x: number, y: number): number {
    return x   y
}
let result1 = add(1) //  Expected 2 arguments, but got 1.
let result2 = add(1, 2)
let result3 = add(1, 2, 3) //  Expected 2 arguments, but got 3

在JS中每个参数都是可选的,可传递也可不传递,如果不传递的时候,它将是默认的undefined

在TS中也是可以实现的,我们只需要在参数名后面添加 ?即可实现可选参数 的功能。

如下代码:

// 实现可选参数功能
// 参数名旁加一个?即可
function add(x: number, y?: number): number {
  return x   y
}
let result1 = add(1)
let result2 = add(1, 2)
// let result3 = add(1, 2, 3) //  Expected 2 arguments, but got 3

如上代码就实现了可选参数

在TS中实现默认参数与JS实现默认参数是相同的,只需要为其赋值即可。

示例代码如下所示:

;(function () {
  function add(x: number, y: number = 2): number {
    return x   y
  }
  let result1 = add(1) // 3
  let result2 = add(1, 2) // 3
})()

当然,如果不为y指定类型就与JS中一样一样了。

3.剩余参数

所谓的剩余参数就是函数定义时需要传递两个参数,而函数调用时传递了3个参数;此时就多余出一个参数,该参数就是剩余参数。

在 JS 中我们可以使用arguments来访问多余传递的参数。那在TS中怎么访问剩余参数呢?

实际上TS中可以将所有的参数存储在一个变量中,该变量实际上一个解耦的一个数组。

示例代码如下:

function fun(x: number, ...numbers: number[]): void {
    console.log(numbers)
}
fun(1, 2, 3, 4) // [ 2, 3, 4 ]

到此这篇关于TypeScript中的函数的文章就介绍到这了,更多相关TypeScript函数内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

TypeScript中的函数的更多相关文章

  1. PHP实现的62进制转10进制,10进制转62进制函数示例

    这篇文章主要介绍了PHP实现的62进制转10进制,10进制转62进制函数,结合具体实例形式分析了php针对62进制与10进制相互转换的操作技巧,需要的朋友可以参考下

  2. php 函数中静态变量使用的问题实例分析

    这篇文章主要介绍了php 函数中静态变量使用的问题,结合实例形式分析了php 函数中静态变量使用过程中遇到的问题,以及相关操作注意事项,需要的朋友可以参考下

  3. PHP的mysqli_ssl_set()函数讲解

    今天小编就为大家分享一篇关于PHP的mysqli_ssl_set()函数讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

  4. php检查函数必传参数是否存在的实例详解

    这篇文章主要介绍了php检查函数必传参数是否存在的实例详解的相关资料,需要的朋友可以参考下

  5. nodejs中函数的调用实例详解

    本文通过实例代码给大家介绍了nodejs函数的调用,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  6. PHP iconv()函数字符编码转换的问题讲解

    今天小编就为大家分享一篇关于PHP iconv()函数字符编码转换的问题讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

  7. Vue3.2 setup语法糖及Hook函数基本使用

    这篇文章主要为大家介绍了Vue3.2 setup语法糖及Hook函数基本使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  8. 使用typescript类型实现ThreeSum

    这篇文章主要介绍了使用typescript类型实现ThreeSum,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以一下,希望对你学习又是帮助

  9.  typeScript入门基础介绍

    这篇文章主要介绍了 typeScript入门基础,TypeScript 是由微软开发的开源、跨平台的编程语言,是 javaScript 的超集,最终被编译为 javaScript代码。常常被简称为TS支持JS、ES语法,下文将继续其他基础介绍,需要的朋友可以参考一下

  10. AngularJS中控制器函数的定义与使用方法示例

    这篇文章主要介绍了AngularJS中控制器函数的定义与使用方法,结合具体实例形式分析了AngularJS控制器函数的定义、绑定及相关使用技巧,需要的朋友可以参考下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部