TypeScript中可哈希的类似于元组的集合

时间:2016-11-01 22:31:29

标签: dictionary typescript hash ecmascript-6

我正在使用TypeScript编写(玩具)哈希和缓存装饰器,但找不到创建实体通用装置的好方法。

到目前为止我的代码是

args

当然这会失败,因为Map<T, U>不是元组而是列表,这是可变的[1]。因此,每个输入,即使它一遍又一遍地相同,也会在自己的内存位置获得自己的列表/数组,并使用自己的哈希值,无论来自哪里。

我还没有在TypeScript(或JS)中找到Tuple类型 - 是否有一个?这种问题还有另一种解决方法吗?

  1. 这不应该是一个错误吗? T应该IHashable限制实施loop.screen.set_terminal_properties(colors=256) 或其他什么,对吧?这是类型的重点 - 在你需要花费大量时间之前提出这个问题。

1 个答案:

答案 0 :(得分:0)

  

这不应该是一个错误吗? Map<T, U>应该限制T实施IHashable或者其他什么,对吗?

没有。对象标识在JavaScript中是一个真实且定义明确的东西; TypeScript不会强制您假装它不存在。

如果ECMAScript委员会认为在地图中强制执行基于非对象身份的键控是合适的,那么他们可能会限制Map个键,但他们没有。