【问题标题】:How to defined interface for object with known and unknown property name如何为具有已知和未知属性名称的对象定义接口
【发布时间】:2017-10-04 07:29:37
【问题描述】:

这是一个我想为其定义接口的对象,

{
  date: '2000-10-01',
  foo: 10,
  bar: 11,
  baz: 12
}

我唯一知道的是date 属性始终存在,但我不知道其他属性会是什么?

interface IProperty {
  date: string
  [option: string]: number
}

在这种情况下似乎不起作用,TS抱怨说

字符串不能分配给字符串索引类型号。

【问题讨论】:

标签: typescript


【解决方案1】:

在您的原始界面中,您声明该界面将包含字符串索引,并返回一个数字 - 但您的 date 属性不遵守此规定,这意味着您的界面自相矛盾。

你需要诚实地承认你可以获得一个数字或一个字符串(在一种特定情况下)......

interface IProperty {
  date: string
  [option: string]: string | number;
}

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 2016-11-10
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2018-07-04
    • 2015-11-09
    • 2012-11-04
    相关资源
    最近更新 更多