TypeScript中的函数

2022-04-15 0 718
目录
  • 1.函数定义
    • 1.1JavaScript中的函数
    • 1.2TypeScript中的函数
  • 2.可选参数和默认参数
    • 3.剩余参数

      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函数内容请搜索NICE源码以前的文章或继续浏览下面的相关文章希望大家以后多多支持NICE源码!

      免责声明:
      1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

      2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
      如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
      如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

      NICE源码网 JavaScript TypeScript中的函数 https://www.niceym.com/21268.html