Sign in With Google (GSI) 库的 TypeScript 类型声明在哪里?

jam*_*her 31 npm typescript google-signin

我正在使用Google“GSI”库实现“使用 Google 登录” 。我的应用程序使用 Next.js 和 TypeScript,所以我正在寻找:

  1. npm包含 GSI 客户端库的包。
  2. GSI 客户端库的 TypeScript 类型声明。

我无法找到其中任何一个:我只看到一个从中加载的脚本https://accounts.google.com/gsi/client,以及一个非正式的 API 参考here

在 npm 上哪里可以找到 GSI 库和类型声明?

小智 18

  1. accounts.google.com/gsi/client不存在的NPM 包,至少现在还不存在。使用它的唯一方法是通过脚本标签。
  2. 除了jameshfisher的答案中的@types/google-one-tap之外,还有@types/google.accounts

两者google-one-tap或 都google.accounts可以添加到 tsconfig 类型中。

tsconfig.json

"types": ["google-one-tap", "google.accounts"]
Run Code Online (Sandbox Code Playgroud)


jam*_*her 10

类型位于@types/google-one-tap并且可以像这样使用:

declare global {
  const google: typeof import('google-one-tap');
}
Run Code Online (Sandbox Code Playgroud)

不过,我不知道在哪里可以找到 npm 上的实际库。

  • @Coffee-Tea `https://accounts.google.com/gsi/client` 上的脚本对我有用,但我更愿意将该库包含为 npm 依赖项。我还编辑了我的答案以展示我如何使用非官方类型声明。 (2认同)

sin*_*dam 5

可以使用 NPM 将类型安装到您的 typescript 项目中

npm install @types/google.accounts
Run Code Online (Sandbox Code Playgroud)

以下是我捆绑的可能经常使用的 TSDoc 类型的列表,因为我意识到每当我搜索一个类型时,我都会进入此页面。

@types/google.accounts
# Type definitions for Google Identity Services JavaScript SDK

@types/gapi
# TypeScript definitions for Google API Client

@types/gapi.client
# TypeScript definitions for Google API client

@types/gapi.client.discovery
# TypeScript definitions for API Discovery Service v1

@types/gapi.client.sheets
# TypeScript definitions for Google Sheets API v4

@types/gapi.client.drive
# TypeScript definitions for Drive API v3

@types/gapi.client.bigquery
# TypeScript definitions for BigQuery API v2

@types/gapi.client.storage
# TypeScript definitions for Cloud Storage JSON API v1

@types/gapi.client.youtube
# TypeScript definitions for YouTube Data API v3 v3

@types/gapi.client.androidpublisher
# TypeScript definitions for Google Play Android Developer API v3

@types/gapi.client.oauth2
# TypeScript definitions for Google OAuth2 API v2

@types/gapi.client.calendar
# TypeScript definitions for Calendar API v3

@types/gapi.client.gmail
# TypeScript definitions for Gmail API v1

@types/gapi.client.people
# TypeScript definitions for People API v1

@types/gapi.client.analytics
# TypeScript definitions for Google Analytics API v3

@types/gapi.client.fcm
# TypeScript definitions for Firebase Cloud Messaging API v1

@types/gapi.client.speech
# TypeScript definitions for Cloud Speech-to-Text API v1

@types/gapi.client.language
# TypeScript definitions for Cloud Natural Language API v1

@types/gapi.client.tagmanager
# TypeScript definitions for Tag Manager API v2

@types/gapi.client.analyticsadmin
# TypeScript definitions for Google Analytics Admin API v1alpha

@types/gapi.client.analyticsreporting
# TypeScript definitions for Analytics Reporting API v4

@types/gapi.client.customsearch
# TypeScript definitions for Custom Search API v1

@types/gapi.client.sqladmin
# TypeScript definitions for Cloud SQL Admin API v1

@types/gapi.client.deploymentmanager
# TypeScript definitions for Cloud Deployment Manager V2 API v2

@types/gapi.client.pubsub
# TypeScript definitions for Cloud Pub/Sub API v1

@types/gapi.client.cloudbuild
# TypeScript definitions for Cloud Build API v1

@types/gapi.client.logging
# TypeScript definitions for Cloud Logging API v2

@types/gapi.client.iam
# TypeScript definitions for Identity and Access Management (IAM) API v1

@types/gapi.auth2
# TypeScript definitions for Google Sign-In API

@types/gapi.client.translate
# TypeScript definitions for Cloud Translation API v3

@types/gapi.client.firebase
# TypeScript definitions for Firebase Management API v1beta1

@types/gapi.client.adsense
# TypeScript definitions for AdSense Management API v2

@types/gapi.client.analyticshub
# TypeScript definitions for Analytics Hub API v1beta1

@types/gapi.client.firestore
# TypeScript definitions for Cloud Firestore API v1

@types/gapi.client.firebasestorage
# TypeScript definitions for Cloud Storage for Firebase API v1beta

@types/gapi.client.dialogflow
# TypeScript definitions for Dialogflow API v3
Run Code Online (Sandbox Code Playgroud)