簡體   English   中英

(Typescript)屬性“ window”在類型“ Global”上不存在

[英](Typescript) Property 'window' does not exist on type 'Global'

我正在使用Mocha / Chai進行單元測試,並模擬window如下:

global.window = { innerHeight: 1000, innerWidth: 1000 };

可以理解,TSLint抱怨:

屬性“窗口”在類型“全局”上不存在

幾個問題... Global是內置的NodeJS / Typescript類型嗎? 我目前正在使用文件頂部的declare var global消除警告...但這是處理此問題的最佳方法嗎? 我注意到我也可以通過以下方式解決警告:

declare global {
    namespace NodeJS {
        interface  Global {
            window: any;
        }
    }
}

最好,我想擴展現有的Global類型以也接受window屬性。 謝謝。

Global是內置的NodeJS / Typescript類型嗎?

是。 參見@types/node/index.d.ts ; 在該文件中,它們聲明一個NodeJS命名空間,並在其中聲明一個Global接口(正如您所做的那樣)。

我目前正在使用declare var global消除警告

聽起來好像您沒有安裝Node類型(這些類型包括declare var global: NodeJS.Global;因此您不必自己進行任何此類聲明)。 跑:

npm install --save-dev @types/node

或者,如果您使用yarn

yarn add -D @types/node

最好,我想擴展現有的Global類型以也接受window屬性。

您大部分都在那兒。 只需替換window: any; window: Window; 注意:您將需要tsconfig.jsonlib部分包含dom來提供Window界面。

您可能很快會發現,您還想擴充Global documentnavigator (同樣,這兩個都是在dom lib中定義的,因此需要它):

interface Global {
    document: Document;
    window: Window;
    navigator: Navigator;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM