Имам изтеглени декларация вид обещание за пишеща машина от 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