输入 gapi.savetoandroidpay
Posted
技术标签:
【中文标题】输入 gapi.savetoandroidpay【英文标题】:Type for gapi.savetoandroidpay 【发布时间】:2020-03-09 11:00:51 【问题描述】:我正在尝试将 Google Pay Passes 与 Typescript 一起使用。有一个包来定义类型:npm install --save @types/gapi
但我没有任何方法可以使用
gapi.savetoandroidpay.render("dom-container",
"jwt": "JWT",
"onsuccess": "successHandler",
"onfailure": "failureHandler"
);
Here is the documentation
是我使用了错误的包还是缺少这个包?
【问题讨论】:
很可能,类型声明尚未更新以包含此方法。自己声明,然后创建一个 pr 以明确键入添加它 【参考方案1】:我使用以下类型定义:
declare namespace gapi
declare namespace gapi.savetoandroidpay
type ButtonHeight = "small" | "standard";
type ButtonSize = "matchparent" | undefined;
type ButtonTextSize = "large" | undefined;
type ButtonTheme = "dark" | "light";
type SuccessHandler = (detail: walletObjectIds: string[] ) => void;
type FailureHandler = (error: Error) => void;
type ProvideJwtHandler = () => string;
interface ButtonOptions
jwt: string;
height?: ButtonHeight;
size?: ButtonSize;
textsize?: ButtonTextSize;
theme?: ButtonTheme;
onSuccess?: SuccessHandler;
onFailure?: FailureHandler;
onProvideJwt?: ProvideJwtHandler;
function render(domId: string | Element, options: ButtonOptions): void;
您可以将此添加到项目中的gapi.savetoandroidpay.d.ts
文件中。
这个类型定义最初来自https://github.com/google-pay/save-to-google-pay-button/blob/main/src/lib/button-manager.ts
【讨论】:
【参考方案2】:@types/gapi
包不包含对 Google Pay 实施的定义,例如 gapi.savetoandroidpay
(截至 2019 年 11 月 26 日)。
在类型更新之前,我建议将 gapi
声明为您的 global.d.ts
或使用 gapi.savetoandroidpay.render()
的 TypeScript 文件中的类型。
sample.ts
declare var gapi: any;
const init=()=>
gapi.savetoandroidpay.render("dom-container",
"jwt": "JWT",
"onsuccess": "successHandler",
"onfailure": "failureHandler"
);
需要注意的是,这只会抑制类型错误。
【讨论】:
以上是关于输入 gapi.savetoandroidpay的主要内容,如果未能解决你的问题,请参考以下文章