Bagaimanakah saya boleh membetulkan ralat TypeScript ini pada objek tetingkap aplikasi Vue saya?
P粉344355715
P粉344355715 2023-12-06 20:46:24
0
2
483

Dalam komponen aplikasi Vue 3 saya, saya perlu menggunakan beberapa sifat tersuai pada tetingkap seperti ini:

window.ZohoHCAsapSettings = { //<-- ERROR HERE
  ticketsSettings: {
    preFillFields: {
      email: {
        defaultValue: user.value?.email,
      },
    },
  },
};

Tetapi saya mendapat ralat TypeScript pada ZohoHCAsapSettings:

Property 'ZohoHCAsapSettings' does not exist on type 'Window & typeof globalThis'. ts(2339)

Jadi saya cuba mengembangkan tetingkap seperti ini:

interface customWindow extends Window {
  ZohoHCAsapSettings?: unknown;
}
declare const window: customWindow; //<-- ERROR HERE
window.ZohoHCAsapSettings = {
  ticketsSettings: {
    preFillFields: {
      email: {
        defaultValue: user.value?.email,
      },
    },
  },
};

Ini akan menghapuskan ralat pada ZohoHCAsapSettings 上的错误,但会在 declare tetapi menjana satu lagi ralat pada deklarasikan dengan kandungan berikut:

Modifiers cannot appear here. ts(1184)

Saya baru menggunakan TypeScript jadi tidak pasti apa yang berlaku di sini.

Jika ia penting, saya menggunakan Kod Visual Studio sebagai IDE saya.

Ada idea?

P粉344355715
P粉344355715

membalas semua(2)
P粉130097898

Bagaimana pula dengan ini:

interface Window { ZohoHCAsapSettings?: unknown; }

Bekerja di sini: TS Playground

P粉314915922

Seperti yang @Buszmen nyatakan, global Window 接口应该使用新属性进行扩展。类型声明通常存储在自己的 .d.ts 文件中(例如,全局变量为 src/globals.d.ts).

Jika anda menggunakan ruang nama npm init vuenpm init vite 或 Vue CLI 搭建的项目,关键是指定 global:

// src/globals.d.ts
declare global {
  interface Window { ZohoHCAsapSettings?: unknown; }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!