TypeScript: mendeklarasikan konstruktor di window global


Saya sedang mencoba untuk mendeklarasikan konstruktor yang diharapkan pada objek jendela.

declare global {
  interface Window {
    MyApi: {
      MyClassType: any
    }
  }
}

expect(new window.MyApi.MyClassType()).toNotBe(undefined)

Apa seharusnya any?

Jawaban #1

Itu seharusnya tipe dari kelas Anda, misalnya.

class MyClass {
  constructor(public name: string) {}
}

declare global {
  interface Window {
    MyApi: {
      MyClassType: MyClass;
    };
  }
}

Jawaban #2

Hal yang menyenangkan tentang TypeScript adalah Anda dapat menggunakan kelas sebagai tipe

Jadi dalam kasusmu buatlah kelasmu

class MyClass {}

Dan dalam deklarasi

MyClassType: MyClass