2017-10-04 93 views
0

这里是一个对象我希望定义一个接口,如何定义接口的对象与已知和未知的属性名

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

我所知道的唯一的事情是date财产是永远存在的,但我不知道知道其他属性会是什么?

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

似乎没有在这种情况下工作,TS抱怨

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

+0

你试过https://stackoverflow.com/questions/30840596/how-to-do-dynamic-objects-in-typescript? –

+0

我不认为这解决了我的问题。 –

+0

试用它,它的完整动态,所以你可以访问日期以及动态 –

回答

2

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

你需要诚实面对这样的事实,你可以得到一个数字,或者一个字符串(在一个特定的情况下)...

interface IProperty { 
    date: string 
    [option: string]: string | number; 
} 
相关问题