Глобальная ссылка на объект платежной формы Square в Angular - PullRequest
0 голосов
/ 23 мая 2018

Нет реализации формы извлечения Square для Angular 4/5/6, поэтому я пытаюсь выяснить, что это может повлечь, создав тестовый компонент, но я не могу понять, какполучить ссылку на их глобальный объект 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;
}

1 Ответ

0 голосов
/ 23 мая 2018

Понял, я должен был создать свои собственные наборы, но не мог понять, как загрузить его через .d.ts, поэтому, пока он объявлен в модуле Square:

declare global {
  interface Window {
    SqPaymentForm: any;
  }
}

или замените window.SqPaymentForm на:

(<any>window).SqPaymentForm
...