Angular 4/5/6没有实现Square结帐表单,所以我试图通过创建测试组件来弄清楚这可能带来什么,但我无法弄清楚如何获取将它们的全局对象SqPaymentForm引用到Angular中并让TypeScript不会抛出错误,说它在窗口对象上不存在window.SqPaymentForm
,因为它确实存在。
有人能指出我如何让TypeScript识别window.SqPaymentForm
存在吗?
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
],
declarations: [],
providers: [
{ provide: 'SQUARE', useFactory: getSquare }
]
})
export class SquareModule { }
export function getSquare() {
return (typeof window !== undefined)
// TypeScript indicates it doesn't exist on Window
? window.SqPaymentForm
: null;
}
答案 0 :(得分:0)
想出来我必须创建自己的打字,但无法弄清楚如何通过.d.ts
加载它,所以,现在,它在Square模块中声明:
declare global {
interface Window {
SqPaymentForm: any;
}
}
或将window.SqPaymentForm
替换为:
(<any>window).SqPaymentForm