问题描述
阅读Typescript 4.0中的更改后,我发现了新功能:
我认为元素可以通过数字(例如在元组和列表中)或通过键(例如在字典中)进行索引。我不希望它们会同时被索引。
我的问题是:
解决方法
这纯粹是出于文档目的,没有语义。它们只是将名称放入类型签名中的一种方法-它们的类型检查与不带名称的元组相同,并且运行时行为也相同。
虽然它们对类型检查没有影响,但元组位置上缺少标签会使它们更难使用,也难以传达我们的意图。
添加了重点。
每当要记录元组中元素的名称在使用它们的函数的类型签名中时,请使用它们。
示例
您可能有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数组对象。