返回介绍

函数 Function

发布于 2025-05-03 21:35:25 字数 1778 浏览 0 评论 0 收藏

函数是 JavaScript 应用程序的基础,它帮助你实现抽象层、模拟类、信息隐藏和模块。

TypeScript 里,虽然已经支持类、命名空间和模块,但函数仍然是主要的定义行为的地方, TypeScriptJavaScript 函数添加了额外的功能,让我们可以更容易地使用。

定义函数类型

在 TypeScript 中定义函数:

const add = (a: number, b: number) => a + b

实际上我们只定义了函数的两个参数类型,这个时候整个函数虽然没有被显式定义,但是实际上 TypeScript 编译器是能『感知』到这个函数的类型的

函数的参数详解

可选参数

一个函数的参数可能是不存在的,这就需要我们使用可选参数来定义。

我们只需要在参数后面加上 ? 即代表参数可能不存在。

const add = (a: number, b?: number) => a + (b ? b : 0)

参数 bnumberundefined 两种可能。

默认参数

默认参数在 JavaScript 同样存在,即在参数后赋值即可。

const add = (a: number, b = 10) => a + b

剩余参数

剩余参数与 JavaScript 种的语法类似,需要用 ... 来表示剩余参数,而剩余参数 rest 则是一个由 number 组成的数组,在本函数中用 reduce 进行了累加求和。

const add = (a: number, ...rest: number[]) => rest.reduce(((a, b) => a + b), a)

重载 Overload

// 重载
interface Direction {
  top: number,
  bottom?: number,
  left?: number,
  right?: number
}
function assigned(all: number): Direction
function assigned(topAndBottom: number, leftAndRight: number): Direction
function assigned(top: number, right: number, bottom: number, left: number): Direction

function assigned (a: number, b?: number, c?: number, d?: number) {
  if (b === undefined && c === undefined && d === undefined) {
    b = c = d = a
  } else if (c === undefined && d === undefined) {
    c = a
    d = b
  }
  return {
    top: a,
    right: b,
    bottom: c,
    left: d
  }
}

assigned(1)
assigned(1,2)
assigned(1,2,3)
assigned(1,2,3,4)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。