我怎样才能声明window.Promise我有适当的Promise声明?

时间:2014-06-28 10:47:51

标签: typescript

我已经从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?

1 个答案:

答案 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