Typoskript: wie Klasse importieren, die exportiert wurde mit `export = uuid`

stimmen
0

Ich versuche , die node_module zu verwenden uuid-jsin Typoskript. Ich habe sowohl das Modul und die Typisierung installiert.

Frage: Wie importiere ich das Modul?


Die Methode , die ich verwenden möchte ist uuid.create.

Dies ist in der definiert uuid-jsist Typisierungen wie folgt aus :

export = uuid;
declare class uuid {
    equals(uuid: uuid): boolean;
    ... 
    static create(version?: number): uuid;
    ...
}

Das Typoskript doc sagt , dass:

Wenn ein Modul Import mit Export =, Typoskript spezifischer Importmodul = erfordern ( „Modul“) verwendet werden muss, um das Modul zu importieren.

, Die scheint zu implizieren, dass ich dies tun müssen:

import UUID = require('uuid-js');

Welche scheint dies zu kompilieren:

const UUID = require(uuid-js)  

Gibt es einen Grund, warum ich Import statt const in meinem Code verwenden sollte? Warum nutzen nicht nur die direkt kompilierten Code?

Ich fühle mich wie verwenden, erfordern überhaupt ungerade ist. Vielleicht bin ich besser dran ohne die Typisierungen mit oder ... etwas anderes zu tun?

Was ist der Unterschied zwischen der Verwendung von:

import UUID = require('uuid-js');

Und

const UUID = require(uuid-js)  

Ich habe auch versuchen, eine traditionellere Importstrategie mit wie Madara Uchiha vorgeschlagen, aber ich Fehler bekommen.

Unter Verwendung import * as UUID from 'uuid-js'Ergebnisse in:

error TS2497: Module '.../node_modules/@types/uuid-js/index' resolves to a non-module entity and cannot be imported using this construct.

Und mit import UUID from 'uuid-js';Ergebnissen in:

error TS1192: Module '.../node_modules/@types/uuid-js/index' has no default export.
Veröffentlicht am 29/01/2018 um 18:39
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

Sowohl import something = require('something')und export = somethingsind Vermächtnis Syntaxen erfunden von Typoskript vor ES2015 Module eine Sache waren.

Nun verwenden wir die Standard-Modul Syntax, etwa so:

import * as UUID from 'uuid-js'; // if uuid-js has no export default
// or
import UUID from 'uuid-js'; // if it does.

Die Typisierungen Snippet Sie posierte zeigt an, dass Sie die ehemalige verwenden sollten.

Beantwortet am 29/01/2018 um 18:43
quelle vom benutzer

stimmen
0

Wie sind diese unterschiedlichen

importauch importiert die Typen . const/requirenicht.

Beantwortet am 29/01/2018 um 18:42
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more