typescript - Hur man åsidosätter globala variabeldefinitioner med TS
För vår app på jobbet vill jag uppmuntra människor att använda ett wrapper runt localStorage som automatiskt konverterar till/från JSON (och även har typkontroll på plats). Jag försökte skriva över den globala TS-definitionen för window.localStorage:
declare global {
interface Window {
localStorage: null,
}
}
men det gjorde egentligen ingenting - finns det ett sätt att förhindra användningen av window.localStorage från att kompileras och ännu bättre ge användaren en användbar varning om varför det inte kompileras?
Svar #1
säg om du bara satte
interface Window {
localStorage: null,
}
i deklarationsfilen som är global, och lägg den filen någonstans i ditt projekt som TSC-kompilatorn (VS Code-linter) känner till, då skulle du inte ens behöva det import ' ./our-defs.d.ts'
Svar #2
Okej, skitsamma, det här fungerade, men jag var tvungen att uttryckligen importera filen:
import './our-defs.d.ts'
men om någon vet hur man på något sätt kan ge ett eget felmeddelande, skulle det vara fantastiskt.
