我可以使用打字稿来输出函数的输出吗?

时间:2014-10-19 10:23:11

标签: 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的接口是IUserTestDataMap,_.reduce的输出正在给我正确的数据。然而,Typescript抱怨错误:

Error   9   Cannot convert '{}' to 'IUserTestDataMap':
    Index signatures of types '{}' and 'IUserTestDataMap' are incompatible. 

有没有办法可以使用Typescript转换数据,以便它接受_.reduce函数的输出?

1 个答案:

答案 0 :(得分:3)

施法可以这样做:

<IUserTestDataMap>{}

这个转换操作符除了告诉编译器之外什么都不做。相信我,这个对象应该在下面处理,好像它是指定的类型&#34;。

interface Foo {
    id: number;
}

var x : Foo;
x = {}; // error
x = <Foo>{}; // okay

var y = {};
x = <Foo>y; // okay