我是Typescript的新手,遇到了一个问题。我正在构建一个React Web应用程序并使用lodash。
我从api获取JSON数据。现在,让我们假设它有两个键:
{
foo1 : 'something',
bar1 : [{.. key:value data ..}, { .. key:value data ..}, ...]
}
如何为此定义界面?主要是,我有一个对象数组的事实?我尝试过这样的事情:
interface MyThing {
foo : string;
bar : object[];
}
然后,在reducer代码中,我有类似的东西:
let things : MyThing[] = _.forEach(apiData.things, (thingData) => ({
foo : thingData.stringItem,
bar : thingData.arrayOfObjects
}))
我最终得到这样的错误:
error TS2322: Type 'object' is not assignable to type 'MyThing[]'.
Property 'find' is missing in type '{}'.
修改 在提出建议之后,我犯了一个错误并且意味着使用_.map,而不是_.forEach。这是我得到的错误。
ERROR in ./source/reducers/gamesReducer.ts
(37,40): error TS2345: Argument of type 'object' is not assignable to parameter of type 'List<{}> | Dictionary<{}> | NumericDictionary<{}>'.
Type 'object' is not assignable to type 'NumericDictionary<{}>'.
Index signature is missing in type '{}'.