我想定义一个对象的结构,我在react状态下使用。对象看起来像这样
{
1: [{foo: 'whatever', bar: 'another string'}],
2: [{foo: 'yet another string', bar: '...'}],
...
}
我现在是这样试的
interface ObjectStructure {
number: [{
foo: string,
bar: string
}]
}
const [data, setData] = useState<ObjectStructure>({} as ObjectStructure );
但那不管用当我试着
data[dynamicKey]...
我得到
元素隐式具有"any"类型,因为"number"类型的表达式不能用于索引类型"{}"|{编号:[{foo:字符串;条形:字符串;}];}'
我想问题是
number: [{...}]
^
|
|
如何在带有React的TypeScript中定义这个对象结构?
1条答案
按热度按时间7kjnsjlb1#
您正在查找索引签名:
Playground链接
您还可以使用
Record
预定义类型type来创建索引签名:Playground链接
或使用类型别名:
Playground链接
如果你希望属性是数组,你应该使用
Array<foo: string,bar: string }>
,你使用的语法意味着一个数组有一个单一的元素的类型。