代码之家  ›  专栏  ›  技术社区  ›  XYZ

如何为具有已知和未知属性名的对象定义接口

  •  1
  • XYZ  · 技术社区  · 9 年前

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

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

    我只知道 date 财产总是存在,但我不知道还有什么其他财产?

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

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

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

    1 回复  |  直到 9 年前
        1
  •  2
  •   Fenton    9 年前

    在原始接口中,您声明该接口将包含字符串索引,并返回一个数字——但 date

    interface IProperty {
      date: string
      [option: string]: string | number;
    }
    
    推荐文章