我已经从DefinitelyTyped下载了TypeScript的Promise类型声明,现在我正确地声明了Promise。现在我必须访问window.Promise来检查来自浏览器的Promise支持。我不能那样做,因为这里没有声明window.Promise属性,而Promise是。因此,我试图自己宣布:
interface Window {
Promise: typeof Promise;
}
现在,有一个问题。 type of Promise 中的“Promise”实际上是指Window.Promise,而不是Promise声明,所以Promise的类型现在是< any>,我不想要。
如何正确声明window.Promise here?
答案 0 :(得分:0)
我不能这样做,因为这里没有声明window.Promise属性,而Promise是
您可以使用以下方式检查Promise
上的window
:
if(window['Promise'] === undefined){
// no support
}
Promof类型中的“Promise”实际上是指Window.Promise,而不是Promise声明
您需要从本地范围访问全局范围定义。 TypeScript转到本地范围,您可能正在寻找类似这样的东西(注意temp变量foo):
declare module Promise{export var mem:number;}
var foo:typeof Promise;
interface Window {
Promise: typeof foo;
}
window.Promise.mem = 123; // okay