|
|
Geplaatst op 22-10-2018 17:21:45
|
|
|

In de ECMAscrip{filtering}t 2015-standaard voegt Javascrip{filtering}t het concept modules toe. Typescrip{filter}t volgt dit concept ook.
1. Import en export van modules
Modules worden uitgevoerd in hun eigen scope, niet in de globale scope; Dit betekent dat variabelen, functies, klassen, enz. die in een module zijn gedefinieerd, niet zichtbaar zijn buiten de module, tenzij je ze expliciet exporteert via een van de exports. Aan de andere kant, als je variabelen, functies, klassen, interfaces, enzovoort wilt gebruiken die uit andere modules zijn geëxporteerd, moet je ze importeren via een van de imports.
Modules zijn zelfdeclarerend. In Typescrip{filter}t wordt de relatie tussen de twee modules tot stand gebracht door import en export op bestandsniveau te gebruiken. Hier is een eenvoudig voorbeeld:
animal.ts
app.ts
In het bovenstaande voorbeeld wordt een Dier-achtig gedeclareerd in de animal.ts en geëxporteerd via export. Specificeer in de app.ts het betreffende bestandspad en importeer dit via import om de Animal-klasse te gebruiken.
Omdat Javascrip{filter}t twee verschillende modulereferentiemethoden heeft, kun je bij het compileren naar Javascrip{filter}t de gecompileerde modulereferentiemethode specificeren via het configuratiebestand Typescrip{filtering}t tsconfig.json
De volgende bevat de inhoud van het Javascrip{filter}t-bestand dat op verschillende manieren is gecompileerd
Commonjs
AMD
2. Hernoeming van import en export
De naam van het interne object dat standaard wordt gebruikt bij het importeren en exporteren van modules. Typescrip{filter}t ondersteunt ook hernoemingen voor en na export. Wijzig het bovenstaande voorbeeld
animal.ts
app.ts
Bij importeren en exporteren worden modules hernoemd met het sleutelwoord as.
Een punt om hier op te merken is dat wanneer de geëxporteerde module wordt hernoemd, de modulenaam vóór de import hetzelfde moet zijn als de geëxporteerde hernoemde modulenaam, anders zal de compiler een foutmelding geven. Als bijvoorbeeld de geëxporteerde module wordt hernoemd naar ANI, moet de modulenaam vóór het as-sleutelwoord ANI zijn bij het importeren van deze module in een ander bestand app.ts.
Als je de naam van de geïmporteerde module niet weet, kun je die vervangen door een *-teken
In het bovenstaande voorbeeld, als je alle modules hernoemt en vervangt door het *-teken naar animal_module, kun je alle content die vanuit de module wordt geëxporteerd via animal_module object openen.
3. Exporteer en exporteer meerdere objecten
Normaal gesproken worden meerdere typen objecten gedefinieerd in de module en vervolgens samen geëxporteerd. Er kunnen ook meerdere modules in de import zijn
animal.ts
app.ts
Bij het exporteren kun je het typeobject dat je wilt exporteren opnieuw assembleren naar een JSON-object en het vervolgens exporteren. Na import kan de inhoud worden benaderd via hernoemde moduleobjecten.
4. Standaard export
Er kan maar één standaard export voor een module zijn
animal.ts
app.ts
In het bovenstaande voorbeeld wordt de Animal-klasse geëxporteerd met het standaard trefwoord. In tegenstelling tot normale imports kun je bij het importeren van standaard exportmodules direct de naam van de geïmporteerde module specificeren zonder deze in krulbare haakjes met {} te plaatsen.
5. Dynamische laadmodule
Omdat er in Javascrip{filter}t twee manieren zijn om modules te laden: CommonJS en AMD. Bij het gebruik van Typescrip{filter}t moet je verschillende code schrijven afhankelijk van de configuratie-inhoud van de uiteindelijke compilatie om Javascrip{filter}t te genereren.
Modulebestand animal.ts
CommonJS-wayreferentie:
app.ts
AMD-citaat:
app.ts
|
Vorig:BonusCloud Activatiecode Grab Tool [met broncode]Volgend:Nieuwkomerrapport, hoe heeft MB het gekregen?
|