類型“Window & typeof globalThis”上不存在屬性“gspZc”


在做vue+typescript開發過程,給window對象添加屬性並賦值,卻發現報錯,如類型“Window & typeof globalThis”上不存在屬性“gspZc”。

原則上,TypeScript 需要開發者做到先聲明后使用。這就導致開發者在調用很多原生接口(瀏覽器、Node.js)或者第三方模塊的時候,因為某些全局變量或者對象的方法並沒有聲明過,導致編譯器的類型檢查失敗。

通常情況下,我們給window對象賦值,只需求window.propoerty = 'xxx',但是在此處編譯器或者檢查器,並不認識window是個什么東東,所以給出了錯誤提示。

我這里我們只需要在某個*.d.ts聲明下即可,declare的意思告訴編譯器我知道Window是啥類型,它會跟全局下的Window類型自動合並,但是在這個文件中任意類型一定不能使用export導出(沒想明白),否則會不好使。

// *.d.ts文件中
declare interface Window {
  gspZc: any
}

d.ts大名叫TypeScript Declaration File,存放一些聲明,類似於C/C++的.h頭文件(#include <stdio.h>)

另外,我們也可以直接把window斷言成any繞過去

(window as any).gspZc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM