遇到 arity 这个词,我很难在不知道它的定义的情况下理解它的上下文

Came across the word arity, and I am having a hard time understanding the context it is used in without knowing its definition

我决定加入 TS-Bandwagon,亲自学习 TypeScript。我严重依赖 TypeScript Docs,所以理解每个词是必要的(显然)。几天前,我在 TS-docs 中看到了 arity 这个词,我最终跳过了这一部分,因为我不知道 arity 是什么意思。然而,在大多数情况下,我通常可以依靠自己最终从使用该词的上下文中获取该词的定义;我今天又遇到了 arity ,但我还是不明白。所以我想我想问的是,是否有人可以在计算机科学背景下为我定义 arity_?




下面是 TypeScript Documentation 中包含单词 'arity' 的部分,我不太明白,因为我不是 100% 确定我知道 arity 是什么意思。


重载和回调#

❌ 不要编写仅在回调参数上有所不同的单独重载:


/* WRONG */
declare function beforeAll(action: () => void, timeout?: number): void;
declare function beforeAll(
  action: (done: DoneFn) => void,
  timeout?: number
): void;


✅ 请使用最大数量编写单个重载:

/* OK */
declare function beforeAll(
  action: (done: DoneFn) => void,
  timeout?: number
): void;

❔ 为什么:回调忽略参数总是合法的,所以不需要更短的重载。首先提供较短的回调允许传入错误类型的函数,因为它们匹配第一个重载。




Arity 是函数采用的参数数量。

  • 函数:action: () => void 的元数为 0
  • 函数:action: (done: DoneFn) => void 的元数为 1

更多

它是一个编程语言概念(除其他外):https://en.wikipedia.org/wiki/Arity