/ /どのように私はwindow.Promiseを宣言することができます私は適切な約束の宣言がある? - タイスクリプト

どのように私はwindow.Promiseを宣言することができます私は適切な約束の宣言がある? - タイスクリプト

TypeScriptのPromise型宣言をダウンロードしました DefinitelyTyped私は今、適切に宣言をしています。約束する。今、私はwindow.Promiseにアクセスして、ブラウザからPromiseのサポートを確認する必要があります。私はそれをすることはできません。なぜなら、プロミスはここに宣言されていないからです。したがって、私はそれを自分で宣言しようとしました:

interface Window {
Promise: typeof Promise;
}

今、問題があります。の「約束」 プロミスのタイプ Promiseの宣言ではなく、実際にWindow.Promiseを参照しています。 プロミスのタイプは現在<any>ですが、私は望みません。

どうすれば正しくウィンドウを宣言できますか?ここで肯定?

回答:

回答№1は0

私はそれをすることはできません.Promiseプロパティはここでは宣言されていません。

あなたが確認することができます Promisewindow を使用して:

if(window["Promise"] === undefined){
// no support
}

プロミスのタイプの "プロミス"は、プロミスの宣言ではなく、実際にはウィンドウを指します。

ローカルスコープからグローバルスコープ定義にアクセスする必要があります。そしてTypeScriptはローカルスコープに行きます。あなたはおそらくこのようなものを探しています(temp変数fooに注意してください):

declare module Promise{export var mem:number;}

var foo:typeof Promise;
interface Window {
Promise: typeof foo;
}

window.Promise.mem = 123; // okay