TypeScript:当库函数的返回类型未知时该怎么办

Vas*_*şte 3 javascript node.js node-modules typescript

我是 TypeScript 的新手,我不知道在调用库函数/方法时使用什么类型。例如,我在 Node.js 项目中使用 headless chrome 模块。

import puppeteer = require("puppeteer");

async function launchBrowser () {
    const browser = await puppeteer.launch();

    return browser;
}

// In this case I do not know the return type of the launch method. What should I do?

async function launchBrowser (): Promise<any> {
    const browser: any = await puppeteer.launch();

    return browser;
}
Run Code Online (Sandbox Code Playgroud)

我应该使用 any 还是不打字?

Fra*_*ica 6

假设你找不到你的库的类型,至少我会让函数返回一个承诺,因为你知道它是异步的。

较新版本的 TypeScript 引入了unknown类型:

async function launchBrowser (): Promise<unknown>
Run Code Online (Sandbox Code Playgroud)

但是你也可以返回一个承诺any

async function launchBrowser (): Promise<any>
Run Code Online (Sandbox Code Playgroud)

查看新unknown类型的文档:https : //www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html