TypeScript中的Cheerio`this`对象使“ TS2683:“ this”隐式具有类型“ any”,因为它没有类型注释。”

时间:2019-05-03 09:22:23

标签: typescript cheerio

我在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);

1 个答案:

答案 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在这种情况下是相同的。