阅读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数组对象。