本书未发布

function

未匹配的标注

函数的定义

// z 是可选参数, 可选参数后面不可以再添加必选参数
function add(x: number, y: number, z?: number): number {
    return x + y
}

let res = add(1, 2)

函数表达式

const add = (x: number, y: number, z?: number): number => {
    return x + y
}

// 报错
// let add2: string = add

// 函数赋值, 此时箭头后面的 number 表示的是返回值是数字类型
let add2: (x: number, y: number, z?: number) => number = add

type GetName = (firstName: string, lastName: string) => string
let getName: GetName = function(firstName: string, lastName: string): string {
    return firstName + lastName
}

用接口来描述函数类型

interface ISum {
    (x: number, y: number, z?: number): number
}

let add2: ISum = add

函数的重载

  • 函数重载的时候, 多个函数声明之间不能有其他代码

  • 需求:

      function add(a: string|number, b: string| number): void {
    
      }
      add('xiao', 'ming')
      add(1, 2)
      // 此时, 像下面这样传递参数也不会报错, 但是如果需求是要求传入的数据类型必须是一样的话, 像这样写就不行了, 下面这样传递也不会报错
      add(1, 'sheng')
  • 正确答案

      function add(a: string, b: string):void
      // 这之前不能有其他代码
      function add(a: number, b:number):void
      function add(a: string| number, b: string|number): void {
    
      }
      add(1, 2)
      add('xiao', 'ming')
      // 像下面这样调用函数的话就会报错
      add(1, 'ming')

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~