Typescript: hoe klasse die werd geëxporteerd met importeren `export = uuid`

stemmen
0

Ik probeer om de node_module gebruiken uuid-jsmet de schrijfmachine. Ik heb zowel de module en de typen geïnstalleerd.

Vraag: Hoe kan ik de module importeren?


De methode die ik wil gebruiken is uuid.create.

Dit wordt gedefinieerd in uuid-js's typeringen als volgt uit:

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

De typoscript doc zegt dat:

Bij het importeren van een module met behulp export =, schrijfmachine-specifieke importmodule = vereisen ( module) worden gebruikt om de module te importeren.

Hetgeen lijkt te impliceren dat ik nodig heb om dit te doen:

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

Die lijkt te compileren om dit:

const UUID = require(uuid-js)  

Is er een reden waarom ik zou moeten importeren in plaats van const gebruiken in mijn code? Waarom niet gewoon direct gebruik maken van de gecompileerde code?

Ik voel me als het gebruik nodig is op zich al vreemd. Misschien ben ik beter af zonder gebruik van de typeringen of iets anders te doen ...?

Wat is het verschil tussen het gebruik van:

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

En

const UUID = require(uuid-js)  

Ik heb ook proberen met behulp van een meer traditionele import strategie als Madara Uchiha voorgesteld, maar ik krijg fouten.

Met behulp van import * as UUID from 'uuid-js'de resultaten in:

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

En met behulp van import UUID from 'uuid-js';de resultaten in:

error TS1192: Module '.../node_modules/@types/uuid-js/index' has no default export.
De vraag is gesteld op 29/01/2018 om 18:39
bron van user
In andere talen...                            


2 antwoorden

stemmen
1

Beide import something = require('something')en export = somethingzijn erfenis syntaxis uitgevonden door typoscript vóór ES2015 modules waren een ding.

Nu maken we gebruik van de standaard module syntaxis, als volgt:

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

De typeringen snippet u stelde geeft aan dat u de voormalige moet gebruiken.

antwoordde op 29/01/2018 om 18:43
bron van user

stemmen
0

Hoe worden deze verschillende

importimporteert ook de types . const/requiredoet niet.

antwoordde op 29/01/2018 om 18:42
bron van user

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