sir*_*day 7 javascript node.js typescript
我正在使用Mocha/Chai进行单元测试并且嘲笑window如下:
global.window = { innerHeight: 1000, innerWidth: 1000 };
Run Code Online (Sandbox Code Playgroud)
可以理解的是,TSLint抱怨说:
"全球"类型中不存在属性"窗口"
一些问题......是Global内置的NodeJS/Typescript类型?我目前正在使用declare var global文件顶部的警告进行静音...但这是处理此问题的最佳方法吗?我注意到我也可以通过以下方式解决警告:
declare global {
namespace NodeJS {
interface Global {
window: any;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望扩展现有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
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用yarn:
yarn add -D @types/node
Run Code Online (Sandbox Code Playgroud)
最好,我想扩展现有
Global类型以接受一个window属性。
你大部分时间都在那里。只需替换window: any;为window: Window;. 注意:您需要包含tsconfig.json'slib部分dom以提供Window接口。
您可能很快会发现您还想增加 Globaldocument和navigator(同样,这两个都在domlib中定义,因此需要它):
interface Global {
document: Document;
window: Window;
navigator: Navigator;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |