gpt4 book ai didi

javascript - typescript ,如何引用未导出的 OAuth2Client? google-api-nodejs-客户端

转载 作者:行者123 更新时间:2023-12-01 21:34:04 24 4
gpt4 key购买 nike

我正在尝试关注 https://developers.google.com/sheets/api/quickstart/nodejs教程我正在使用 typescript ,我喜欢它提供的类型注释和自动完成功能,我想用 typescript 和异步而不是回调来重写示例。可悲的是,我被卡住了,OAuth2Client。在我的代码中,我在这样的函数中创建了一个 oauth 客户端:

async function setupClient() {
const content: string = await fs.readFile("credentials.json", "utf8");
const credentials = JSON.parse(content);
// eslint-disable-next-line camelcase
const { client_secret, client_id, redirect_uris } = credentials.installed;
const oAuth2Client: o2 = new google.auth.OAuth2(
client_id,
client_secret,
redirect_uris[0]
);
type OAuth2Client = typeof oAuth2Client;
return oAuth2Client;
}

我想将该客户端委托(delegate)给另外两个设置函数:

function setupAuthUrl(oAuth2Client, scopes) {
const authUrl = oAuth2Client.generateAuthUrl({
access_type: "offline",
scope: scopes,
});
return authUrl;
}
function setupToken(oAuth2Client, code) {
//code
}

但是我正在努力注释 oauth2client 类型,因为它没有直接暴露给任何东西?有人会猜测它是在“oauth2_v2”命名空间下公开的吗?但似乎不是。

我一直在寻找一种在实例化之前引用这种类型的方法,最好是通过导入,遗憾的是,当通过 npm install googleapis 安装这个库时,它不提供对这些中任何一个的依赖google-auth-library , googleapis-common导出和暴露以供导入的位置。 eslint 错误,除非它添加了依赖项,我很难理解为什么它是必需的,因为该类型应该可以访问以轻松完成代码。

关于类型别名:

type OAuth2Client = typeof GoogleApis.prototype.auth.OAuth2.prototype;

这是我能想到的唯一不会为别名抛出错误/警告(对象作为命名空间)的选项。这既是一条很长的线,也是来自其他 OO 语言的非常奇怪的线

  • TLDR:在 typescript 中访问 OAuth2Client 和其他类型的代码完成的首选方式是什么?

最佳答案

截至 6 月 19 日,添加此功能的合并请求已获批准。 https://github.com/googleapis/google-api-nodejs-client/issues/2208

import { google, Auth } from 'googleapis';
const oauthClient: Auth.OAuth2Client = new google.auth.OAuth2();

感谢angelxmoreno例如

关于javascript - typescript ,如何引用未导出的 OAuth2Client? google-api-nodejs-客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62161978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com