2017-09-27 5 views
0

Ich habe den folgenden Code in meinem Projekt:Variablendeklaration manchmal funktioniert, wird „Namespace-Fehler“ andere

1 declare const fabric: any; 
2 class XCanvas { 
3  public canvas: fabric.Canvas; 
4 
5  constructor() { 
6   this.canvas = new fabric.Canvas(); 
7  } 
8 } 

ich die wunderbare fabricjs Bibliothek verwenden, aber ich bin die neueste Version verwenden, und die @ Typen Bibliothek ist ein paar Versionen veraltet. Ich kämpfe, um es in Typoskript zu verwenden, weil es immer Fehler gibt, aber das ist das nächste, das ich bekommen habe.

Also, Zeile 6 kompiliert einfach gut, kein Problem. Aber Linie 3 gibt mir diese Fehlermeldung:

Cannot find namespace 'fabric'. 

Warum ist das passiert? Wie kann ich es ohne die Typisierungen in meinem Projekt verwenden?

Ich importiere es nicht oder benötige es, weil ich ein Skript-Tag verwende, um es in den HTML-Code aufzunehmen.

Antwort

2

Sie versuchen, ein Element von etwas zu verwenden, das Sie als any als Typinformation deklariert haben, was nicht ganz funktioniert. Wenn fabricany ist, können Sie fabric.canvas nicht als Typ-Annotation verwenden. Arbeitscode:

declare const fabric: any; 

class XCanvas { 
    public canvas: any; // <-- 

    constructor() { 
     this.canvas = new fabric.Canvas(); 
    } 
} 
Verwandte Themen