Ovaj problem s Typescriptom o kojem danas raspravljamo karakterističan je za ključni aspekt dizajna i implementacije Typescripta – njegovu interakciju s modulima. Jedna od najčešćih pogrešaka pri kompilaciji je `index.ts se ne može kompajlirati pod –isolatedModules` jer se smatra globalnom datotekom skripte. Ovaj problem je često dovodio do široko rasprostranjenog nesporazuma u Typescript zajednici u vezi s tim kako bi se skriptiranje i uvoz/izvoz modula trebali raditi.
Demistificiranje problema
- Značajka zastavice isolatedModules u Typescriptu nalaže da svaka datoteka mora biti modul. To znači da sve datoteke trebaju sadržavati izjavu o uvozu ili izvozu. Ali kada Typescript naiđe na datoteku kojoj to nedostaje, javlja se gore navedena pogreška. To se događa jer Typescript takve datoteke tretira kao skriptu, a ne kao modul.
rješenja
Kako bismo prevladali ovaj problem, postoji nekoliko mjera koje možemo poduzeti:
- Dodajte izjavu o uvozu ili izvozu. Time ga Typescript prepoznaje kao modul.
- Alternativno, ako nemate ništa za izvoz ili uvoz, možete dodati praznu izjavu za izvoz kao što je 'export {}'.
// Adding an Import Statement import { ModuleName } from "module-location"; // Adding an Export Statement export { variableOrFunctionName }; // Adding an Empty Export Statement export {};
Korak po korak Objašnjenje koda
1. Izjava o uvozu: Pomoću ključne riječi 'import' možemo uvesti modul u trenutnu datoteku. U gornjem primjeru izdvojili smo 'ModuleName' iz njegovog modula.
2. Izjava o izvozu: Ova nam ključna riječ omogućuje izvoz funkcije, varijabli itd. iz modula. Dakle, u drugom modulu, možete koristiti 'uvoz' da dovedete sve što je izvezeno u trenutni modul.
3. Prazna izjava o izvozu: Ova ključna riječ govori Typescriptu da je ovo modul čak i ako nema ništa za izvoz. Dodavanjem 'export {}' izvozimo prazan objekt.
Knjižnice, funkcije i druge relevantne teme
Sustav Typescript Module
Moduli su sastavni dijelovi svake robusne arhitekture aplikacije. Oni igraju ključnu ulogu u postizanju dobro strukturiranog koda koji se može održavati. Oni pružaju koncept enkapsulacije, koji se koristi kako bi jedinice koda za projekt bile čisto odvojene i organizirane.
Uloga oznake 'izolirani moduli'
Ova oznaka osigurava da se svaka Typescript datoteka transpilira zasebno bez ovisnosti o bilo kojoj drugoj datoteci, kao što to radi Babel u svom procesu kompilacije. Ova oznaka je potrebna kada se koristi Babel za transpiliranje kako bi se zajamčila kompatibilnost.
Razumijevanje procesa uvoza i izvoza naredbi, kao i korištenje zastavice 'isolatedModules', od velike je pomoći pri navigaciji ovim problemima kompilacije Typescripta.