我可以用typescript强制转换函数的输出吗?
我有以下代码:我可以用typescript强制转换函数的输出吗?,typescript,Typescript,我有以下代码: .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的接口是IUserTestDataMa
.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,并且3;.reduce的输出为我提供了正确的数据。但是,Typescript出现错误:
Error 9 Cannot convert '{}' to 'IUserTestDataMap':
Index signatures of types '{}' and 'IUserTestDataMap' are incompatible.
是否有一种方法可以使用Typescript强制转换数据,以便它接受来自u.reduce函数的输出?强制转换可以这样做:
<IUserTestDataMap>{}
{}
这个强制转换操作符除了告诉编译器“相信我,这个对象应该在下面被当作指定类型来处理”之外,什么也不做
接口Foo{
id:编号;
}
变量x:Foo;
x={};//错误
x={};//可以
变量y={};
x=y;//可以
interface Foo {
id: number;
}
var x : Foo;
x = {}; // error
x = <Foo>{}; // okay
var y = {};
x = <Foo>y; // okay