我有这段代码:
.success((data: any[], status, headers, config) => {
self.userTests.data = data;
self.userTests.dataMap = _.reduce(data, function (rv, v) {
rv[v.userTestId] = v;
return rv;
}, {});
})
dataMap的接口是IUserTestDataMap,_.reduce的输出正在给我正确的数据。然而,Typescript抱怨错误:
Error 9 Cannot convert '{}' to 'IUserTestDataMap':
Index signatures of types '{}' and 'IUserTestDataMap' are incompatible.
有没有办法可以使用Typescript转换数据,以便它接受_.reduce函数的输出?
答案 0 :(得分:3)
施法可以这样做:
<IUserTestDataMap>{}
这个转换操作符除了告诉编译器之外什么都不做。相信我,这个对象应该在下面处理,好像它是指定的类型&#34;。
interface Foo {
id: number;
}
var x : Foo;
x = {}; // error
x = <Foo>{}; // okay
var y = {};
x = <Foo>y; // okay