打字和解决承诺而不使用<any> </any>

时间:2015-02-05 07:24:26

标签: javascript typescript promise bluebird

如何在没有&lt; any&gt;的情况下编译解析(&lt; any&gt; existingVote)。如果我删除&lt; any&gt;我得到类型&#39;对象&#39;不能在编译器错误窗口中分配类型&#39; Thenable&lt; Object&gt; 的参数。我似乎还不明白如何创建一个Thennable&lt; Object&gt;为了解决回归。

    getExistingVote(): Promise<Parse.Object> {

        return new Promise<Parse.Object>((resolve, reject) => {

            var query = this.getQuery();
            query.first().then(
                (existingVote) => {
                    resolve(<any>existingVote);
                }, (existingVoteError) => {
                    reject(existingVoteError);
                });
        });
    }

1 个答案:

答案 0 :(得分:2)

这取决于existingVote推断类型。它应该是类型:Parse.Object如果不是,那么你需要使用类型断言。

<强>更新 基于 enter image description here

您拥有resolve的定义是错误的,因为它只采用Thenable<Object>。它应该Object | Thenable<Object>https://github.com/TypeStrong/atom-typescript/blob/master/lib/typings/atompromise.d.ts#L82

类似