提问者:小点点

将Promission<string>从超级代理响应转换为Typescript中的字符串


我有一个这样的代码,我正在使用flickr-sdk,它使用superagent来进行所有调用。

常量superagent=require('superagent');var flickr=require('flickr-sdk');

let userId: string = '123'
getFavList: string = async() => {
let favResponse: Response = await flickr.favorites.getList({
    user_id: userId,
});
return favResponse.text;

}

现在我这样叫它

let list: string = await getList();

Typescript给出此错误()=>Promise“不能分配给类型”string“

有没有办法把承诺转换成字符串。然后返回该解析值。

编辑:已更新代码以返回favResponse


共1个答案

匿名用户

您正在将GetFavList分配给类型String:

getFavList: string = async () => ...

GetFavList不是一个字符串,它是一个向字符串返回承诺解析的函数。

您可以这样做:

getFavList = async (): Promise<string> => {
let favResponse: Response = await flickr.favorites.getList({
    user_id: userId,
});

这取决于您的ts-config,但您可以让类型推断为您处理所有事务,而完全避免显式类型(这是我个人推荐的)。