我正在为Puppeteer使用Typescript。我正在尝试从一个元素中获取innerText。
const data = await page.$eval(selector, node => node.innerText);
我得到错误:
类型"Element"上不存在属性"innerText"
我试着像这个问题中描述的那样转换到HTMLElement:error " Property 'innerText' does not exist on type 'EventTarget' "?
const data = await page.$eval(selector, <HTMLElement>(node: HTMLElement) => node.innerText);
以及创建我自己的界面,就像这样:
interface TextElement extends Element {
innerText: string;
}
但在每种情况下,我都得到innerText在此特定类型上不存在的错误。
类型"HTMLElement"上不存在属性"innerText"
为什么会出现这种情况,如何应对?
2条答案
按热度按时间xzv2uavs1#
您可以按如下方式进行修复:
或:
因此,在Github上进行了一些交流之后,很明显这个问题的语法不起作用,它实际上定义了匿名泛型函数。
更清楚的例子如下:
不幸的是,将
T
命名为HTMLElement
会造成混乱。pjngdqdw2#
对于需要修复从
querySelector
返回的任何元素的此错误的用户: