Puppeteer/Typescript: چگونه میتوانم در یک تابع eval$ صفحه به یک عنصر تبدیل کنم؟
من سعی میکنم مقدار یک ویژگی را در Puppeteer بخوانم:
const value = attribute && await page.$eval(selector, (node: Element, name: string) => {
return node.getAttribute(name)
}, attribute.name);
که نتیجه میدهد در
خطا TS2339: ویژگی 'getAttribute' در نوع 'Element' وجود ندارد.
وقتی که من پرتاب میکنم
گره: هر
به جای node: Element، به خوبی کار میکند.
ظاهراً دلیل این امر این است که ریاکت نوع را بهصورت اضافهبار استفاده میکند
رابط Element { }
در node_modules/@types/react/gloabal.d.ts
چگونه میتوانم به المنت استاندارد تبدیل کنم؟
پاسخ شماره ۱
ممکن است کتابخانه dom از tsconfig.json شما کم باشد. آن را به صورت زیر اضافه کنید:
"lib": [
"dom",
"es2018"
],
اگر اضافه کردن کتابخانه مفید نبود، سعی کنید متد مورد نیاز را بهطور صریح با ترکیب اعلانها تعریف کنید:
interface Element {
getAttribute(name: string): string;
}
با این میتوانید نوع دلخواه را همانطور که میخواهید گسترش دهید.
