如何response.body
转换为options.responseType
参数类型?TypeScript游乐场
下面的代码块是我代码的简化版本...还有更多选择。
import got from "got"
interface Options {
responseType?: "buffer" | "json"
}
const get = async (url: string, options?: Options) => {
let response = await got.get(url, {
responseType: options?.responseType ?? "json"
})
return response.body
}
最简单的解决方案是使用重载:
import got from "got"
interface Options {
responseType?: "buffer" | "json"
}
async function get (url: string, options: Options & { responseType: "buffer" }) : Promise<Buffer>
async function get(url: string, options: Options & { responseType: "json" }): Promise<object>
async function get(url: string, options?: Options): Promise<unknown>
async function get (url: string, options?: Options) {
let response = await got.get(url, {
responseType: options?.responseType
})
return response.body
}
let buffer = get("", { responseType: "buffer"})
let object = get("", { responseType: "json" })
let unknown = get("")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句