函数返回类型的打字稿错误

时间:2020-05-29 19:39:38

标签: node.js typescript

我正在使用带有节点的Typescript,并且遇到了一些我不太了解的错误。

index.ts

import read_json_remote from './toolkit/read_json_remote';    
const url: string = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_month.geojson';    
read_json_remote(url).then(data => {
    console.log(data.features);
})
.catch(err => {
    console.log(err);
});

read_json_remote.ts

import got from 'got';
export default (url: string) => {
    return got(url).then((res: object) : object =>  {
        return JSON.parse(res.body);
    })
    .catch(err => {
        console.log(err);
    });
}; 

VSCode显示以下错误:

return JSON.parse(res.body);

在read_json_remote.ts中表示对象“ res”上不存在属性“ body”。

当我console.log res时,根据Got文档中的内容,我在那里看到了'body'属性。

我显然是Typescript的新手,我想念什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

Api正在以JSON返回响应,因此无需使用JSON.parse()。

import got from 'got';
export default (url: string) => {
    return got(url).then((res: object) : object =>  {
        return res;
    })
    .catch(err => {
        console.log(err);
    });
};