Typescript: Hvordan erklærer man et interface, når man også importerer et bibliotek?
Jeg brugte Stackoverflow How do you explicitly set a new property on `window` in TypeScript? til at udvide window. Koden ser således ud:
interface Window { appConfig: any; }
window.appConfig = window.appConfig || {};
Alt fungerer fint.
Når jeg tilføjer linjen
import _ = require('lodash');
Jeg får en fejl
Fejl TS2339: Egenskaben 'appConfig' findes ikke på typen 'Window'.
Hvordan kan jeg løse dette problem?
Jeg arbejder med TypeScript 1.6.2
Svar #1
Når du bruger eksterne moduler, vil interfaces fundet i .ts-filer ikke blive flettet med interfaces fundet i .d.ts-filer. Så i dette tilfælde virker det ikke, fordi Window-interfacet i .ts-filen ikke bliver flettet med Window-interfacet fundet i lib.d.ts. Det skyldes arten af eksterne moduler.
For at rette det, flyt...
interface Window { appConfig: any; }
...ind i en definitionsfil (.d.ts).
