Typescript中的"命名或标记元组"是什么



阅读Typescript 4.0中的更改,我发现了新功能:

标记的元组元素

我认为元素可以通过数字(如元组和列表(或键(如dicts(进行索引。我没想到它们可以双向索引。

我的问题是:

  • 为什么/何时应该使用命名元组而不是普通元组

这纯粹是为了文档目的,没有语义。它们只是将名称放入类型签名中的一种方式——它们的类型检查与没有名称的元组相同,运行时行为也相同。

虽然这些标签对类型检查没有影响,但元组位置上缺少标签会使它们更难使用,也更难传达我们的意图。

添加了强调。

当您想记录元组中元素的名称在使用它们的函数的类型签名中时,请使用它们。

示例

您可能有一个Range类型,即[start, end]:

type Range = [start: number, end: number];

或者您的Range类型可能是[start, length]:

type Range = [start: number, length: number];

或者你可以使用未命名的元组:

type Range = [number, number];

就TypeScript而言,这三个定义具有相同的语义。您可以通过数组访问的析构函数来访问成员(例如arr[0](,就像任何其他数组一样——它们并不特殊。无法按名称访问元素。。。同样,这些只是普通的JavaScript数组对象。

最新更新