NodeJS 检查 typeOf 节点/模块Puppeteer

问题描述

我正在为 nodejs 的类型检查而苦苦挣扎。 我计划使用库 Puppeteer 来测试我自己的网页。为此,我想检查函数参数具有正确类型的方法

如何从“Puppeteer”模块访问“Page”类型?

这是一个代码示例

const pup = require('puppeteer');

/**
 * 
 * @param {puppeteer.page} page Puppeter browser Page (Tab)
 */
async function navigatetoPage(page){
    if(page instanceof page) throw("The passed variable page is not typeOf puppeteer.page")

} 

解决方法

我这样做是为了获取类名:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({headless: true,args: ['--no-sandbox']});
    const page = await browser.newPage();
    console.log(page.constructor.name);
    process.exit(0);
    // show Page
})();

我在源代码中找到了一个定义这个类的文件:

https://github.com/puppeteer/puppeteer/blob/main/src/common/Page.ts

但是当我浏览节点模块文件夹时,我在这里找到了它: 'puppeteer/lib/cjs/puppeteer/common/Page'

尽管如此,这段代码似乎有效。

const puppeteer = require('puppeteer');
const {Page} = require('puppeteer/lib/cjs/puppeteer/common/Page');

(async () => {
    const browser = await puppeteer.launch({headless: true,args: ['--no-sandbox']});
    const page = await browser.newPage();
    console.log(page instanceof Page);

})();

你想通过这个实现什么?