美文网首页程序员
TypeScript -- 函数相关知识点梳理

TypeScript -- 函数相关知识点梳理

作者: _路明非_ | 来源:发表于2019-12-02 08:51 被阅读0次

如果函数定义
四种方式,后三种只是函数类型的定义,并没有具体的实现,真正调用的时候,需要书写这个函数体

function add0(x: number, y: number ) {
  return x + y
}

let add11: (x: number, y: number) => number

type add2 = (x: number, y: number) => number

interface add3 {
  (x: number, y: number): number
}

// add0(1,2,3)  参数必须对应,否则报错

可选参数
function add5(x: number, y?: number) {
  return y? x + y: x;
}

add5(1) //可选参数必须在必须参数之后

默认参数
function add6(x: number, y = 0, z: number, q = 1) {
  return x + y + z + q
}
console.log(add6(1,undefined,3))//5 在必须参数之前的默认参数需要用undefined来生效

剩余参数
function add7(x:number, ...rest:number[]) {
  return x + rest.reduce((pre, cur) => pre + cur)
}
console.log(add7(1, 2, 3, 4, 5)) //15

函数重载(要把最容易匹配的写在最前面)
function add8(...rest: number[]): number
function add8(...rest: string[]): string
function add8(...rest: any[]): any {
  let first = rest[0];
  if (typeof first === 'string'){
    return rest.join('')
  }
  if (typeof first === 'number') {
    return rest.reduce((pre, cur) => pre + cur)
  }
}
console.log(add8(1, 2, 3))// 6
console.log(add8('a', 'b', 'c'))// abc

相关文章

  • TypeScript -- 函数相关知识点梳理

    如果函数定义四种方式,后三种只是函数类型的定义,并没有具体的实现,真正调用的时候,需要书写这个函数体 functi...

  • 5.typeScript中函数相关知识点梳理。

    函数定义 函数重载 ts编译器在处理重载的时候,会去查询一个重载的列表,并且会尝试第一个定义,如果匹配的话就是用这...

  • Vue3 setup函数

    ?最近重新夯实Vue3,梳理的相关知识点和细节 本文关于setup函数 setup是一个可选配置项,也是compo...

  • mysql锁和事务相关知识点

    梳理了mysql锁和事务相关知识点,如下图所示

  • 热修&插件 - 编译

    本专题梳理下热修插件相关知识点,后续也好翻阅回顾。 开篇先简单梳理一些相关基本概念。 一、编译相关文件介绍 lib...

  • 前端入门25-福音 TypeScript

    声明 本篇内容摘抄自以下来源: TypeScript 中文网 只梳理其中部分知识点,更多更详细内容参考官网。 正文...

  • typescript语法

    参考:typescript参考1 typescript参考2 函数参数类型定义 声明函数参数默认值 ...

  • TypeScript 介绍与环境的搭建

    概要 TypeScript介绍 相关网址:TypeScript - JavaScript that scales....

  • 将指定格式的文章进行保存

    文件系统的相关知识点: 采用函数形式可以缩减工作,或这泡菜函数均可。

  • JS函数知识点梳理

    要想学好JavaScript除了基本的JavaScript知识点外,作为JavaScript的第一等公民——函数,...

网友评论

    本文标题:TypeScript -- 函数相关知识点梳理

    本文链接:https://www.haomeiwen.com/subject/dswtgctx.html