我在Typescript项目中使用Cheerio抓取HTML页面。但是我不明白如何解决这个问题:
TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
这是我的代码。有什么想法吗?
import * as cheerioReq from 'cheerio-req';
async function crawl (options) {
await cheerioReq({ url: options.url, headers: options.headers }, (err, $: CheerioStatic) => {
if(err) console.log(err);
$('.title').each((i, elem) => {
console.log(i, elem, $(this).text().trim());
})
})
}
crawl(options);
答案 0 :(得分:1)
您可以使用常规函数解决此问题。
首先使用npm i @types/cheerio
在终端中安装Cheerio类型,
然后导入Cheerio:import cheerio from 'cheerio';
。
现在更改您的代码,使其看起来像这样:
$('.title').each(function(this: CheerioElement, i, elem) {
console.log(i, elem, $(this).text().trim());
})
顺便说一句,this和elem在这种情况下是相同的。