/ / Как мога да обявя прозореца.Забравих ли, когато имам подходяща декларация за обещанието? - пишеща машина

Как мога да обявя прозореца. Пропуснах ли, когато имам подходяща декларация за обещанието? - пишеща машина

Имам изтеглени декларация вид обещание за пишеща машина от DefinitelyTyped, и аз сега правилно има декларация отPromise. Сега трябва да влезете в прозореца.Променете да проверите поддръжката на обещанията от браузърите. Не мога да направя това, защото прозорецът.Промишлената собственост не е обявена тук, докато обещанието е. По този начин се опитах да я декларирам сами:

interface Window {
Promise: typeof Promise;
}

Сега има проблем. "Обещанието" в тип обещание всъщност се отнася Window.Promise, не Promise декларация, така че типът обещание сега е <any>, което не искам.

Как мога да обявя прозореца правилно?

Отговори:

0 за отговор № 1

Не мога да направя това, защото прозорецът.Промишлената собственост не е обявена тук, докато обещанието е

Можете да проверите за Promise за window използвайки :

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

"Обещанието" в типа обещание всъщност се отнася до прозореца "Пророчество", а не "обещание"

Трябва да имате достъп до дефиницията на глобалния обхват от местния обхват. И TypeScript отива в локалния обхват, вероятно търсите нещо подобно (забележка temp variable foo):

declare module Promise{export var mem:number;}

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

window.Promise.mem = 123; // okay