【问题标题】:Why is it possible to have both numeric and string index signatures for an interface in TypeScript?为什么 TypeScript 中的接口可以同时具有数字和字符串索引签名?
【发布时间】:2015-04-17 06:47:54
【问题描述】:

根据语言规范,可以有一个同时具有数字和字符串索引签名的接口,因此以下接口似乎是有效的:

interface WeirdArray {
  [index: string]: string;
  [index: number]: string;
}

但我找不到可以使用此类接口的合适示例,有人可以提供此类接口有意义的示例吗?

【问题讨论】:

  • 为了匹配 Typescript 所在的 Javascript 的功能?
  • 你能举个例子吗?
  • 我不确定。 JS 中的所有内容都可以通过字符串和整数进行寻址。例如var 东西 = []。东西[“一个”] =“两个”。 stuff[0] 与 stuff["one"] 一样有效,可以访问 "two" 的值。

标签: typescript


【解决方案1】:

因为数字索引器类型必须是字符串索引器类型的子类型,所以除非你有一些疯狂的类型,其中字符串命名的属性是某种基类型,而数字命名​​的属性是那种。我无法想象它的用途。

简而言之,它是允许的,因为它不是不允许的

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 2020-07-09
    • 2018-09-15
    • 2020-04-03
    • 2019-09-13
    • 2020-05-14
    • 2012-12-10
    • 2020-07-12
    • 2020-02-02
    相关资源
    最近更新 更多