在 TypeScript 1.8 中实现一个简单的字典

Posted

技术标签:

【中文标题】在 TypeScript 1.8 中实现一个简单的字典【英文标题】:Implementing a simple Dictionary in TypeScript 1.8 【发布时间】:2016-09-18 01:10:41 【问题描述】:

我正在尝试找到一种在 TypeScript 1.8 中实现 Dictionary 的简单方法。网上有几种实现建议,但最吸引人的是这样的:

var MyDictionary:  [id: number]: string ;

很遗憾,我不太明白这段代码的含义。 MyDictionary [id: number]: string 类型,但这到底是什么意思?反过来,[id: number]: string 是什么意思?这也是一种类型吗?我猜id 是关键,但值似乎是无名的。

例如,我如何遍历字典并提取键/值对?我在代码中大量使用 underscore.js,因此对使用此库进行迭代和操作的建议表示赞赏。

【问题讨论】:

哦,可索引类型,完美答案谢谢!但是如何遍历这样一个集合,同时检索“键”(或索引?)和值? 啊哈***.com/questions/16174182/…。我要试试这个。可惜你没有回答这个问题,我可以把它标记为“已回答”。 【参考方案1】:

这是用于字典的正确结构;它被称为可索引类型(或索引器),可以在here 找到文档。

基本概念是在一个普通的 JS 对象上覆盖类型约束,使用对象键名作为字典键并指定它包含的对象的类型。因此,您可以对可索引类型使用标准 JS 对象迭代技术,例如 for...in

【讨论】:

以上是关于在 TypeScript 1.8 中实现一个简单的字典的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中实现 Typescript 接口

如何让一个类在 Typescript 中实现调用签名?

在 Typescript 中实现接口时如何定义私有属性?

在 Typescript 中实现 Bull Queue

使用类组件在 Vue mixin 中实现 typescript 泛型

如何在 React TypeScript 中实现 e 和 props?