具有未知键的对象的打字稿类型,但只有数值?

Posted

技术标签:

【中文标题】具有未知键的对象的打字稿类型,但只有数值?【英文标题】:typescript type for object with unknown keys, but only numeric values? 【发布时间】:2018-05-30 13:29:29 【问题描述】:

我有一个在运行时从外部源获取的对象。它具有任意字符串值的键,但只有数字值。它可能看起来像:

foo:1, bar:3 

但它也可能看起来像

asdf: 1

我希望 typescript 编译器知道 对于所有存在的键,值都是数字。我尝试了type numObj = string: numbertype numObj = [string]: number 之类的方法,但都不起作用。

什么是适合的类型声明?

【问题讨论】:

[key: string]: number ?阅读关于可索引类型的文档:typescriptlang.org/docs/handbook/interfaces.html 确实有效。谢谢。 :) 将其写为答案并接受它。我在“高级类型”下阅读了有关可索引类型的文档,但并不理解。感谢您参考有关可索引类型的更充分的部分。 Enforcing the type of the indexed members of a Typescript object?的可能重复 【参考方案1】:

正如 jonrsharpe 在他的评论 typescript type for object with unknown keys, but only numeric values? 中给出的:

[key: string]: number ?阅读有关可索引类型的文档: www.typescriptlang.org/docs/handbook/interfaces.html

【讨论】:

以上是关于具有未知键的对象的打字稿类型,但只有数值?的主要内容,如果未能解决你的问题,请参考以下文章

打字稿中具有通用键的对象

具有定义值的打字稿动态对象键

如何在打字稿中使用可能的字符串和数字索引确定对象的类型?

打字稿如何定义对象,其中键的值取决于另一个键

如何将对象数组转换为在打字稿中具有动态键的单个对象

如何使用打字稿中的查找来推断类型化的 mapValues?