Ovo pitanje o Typescript-u o kojem danas raspravljamo je karakteristično za ključni aspekt u dizajnu i implementaciji Typescript-a – njegovu interakciju sa modulima. Jedna od najčešćih grešaka pri kompilaciji je `index.ts ne može se prevesti pod –isolatedModules` jer se smatra globalnom datotekom skripte. Ovaj problem je često dovodio do široko rasprostranjenog nesporazuma u Typescript zajednici u vezi sa načinom na koji treba da se uradi skriptovanje i uvoz/izvoz modula.
Demistifikacija problema
- Karakteristika zastavice isolatedModules u Typescript-u nameće da svaki fajl mora biti modul. To znači da sve datoteke trebaju uključivati naredbu za uvoz ili izvoz. Ali kada Typescript naiđe na datoteku kojoj to nedostaje, ispušta gore spomenutu grešku. Ovo se događa zato što Typescript takve datoteke tretira kao skriptu, a ne kao modul.
rješenja
Da bismo prevazišli ovaj problem, postoji nekoliko mjera koje možemo poduzeti:
- Dodajte izjavu za uvoz ili izvoz. Time ga Typescript prepoznaje kao modul.
- Alternativno, ako nema ništa za izvoz ili uvoz, možete dodati praznu naredbu 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: Koristeći ključnu riječ 'import', možemo uvesti modul u trenutni fajl. U gornjem primjeru, izdvojili smo 'ModuleName' iz njegovog modula.
2. Izjava o izvozu: Ova ključna riječ nam omogućava da izvezemo funkciju, varijable itd. iz modula. Dakle, u drugom modulu, možete koristiti 'import' da prenesete sve što je izvezeno u trenutni modul.
3. Prazna izjava o izvozu: Ova ključna riječ govori Typescript-u da je ovo modul čak i ako nema ništa za izvoz. Dodavanjem 'export {}' izvozimo prazan objekat.
Biblioteke, funkcije i druge relevantne teme
Sistem modula Typescript
Moduli su sastavni dio arhitekture svake robusne aplikacije. Oni igraju vitalnu ulogu u postizanju dobro strukturiranog koda koji se može održavati. Oni pružaju koncept enkapsulacije, koji se koristi da bi jedinice koda za projekat bile čisto odvojene i organizovane.
Uloga oznake 'isolatedModules'
Ova oznaka osigurava da se svaka Typescript datoteka transpilira u izolaciji bez ovisnosti o bilo kojoj drugoj datoteci, kao što Babel radi u procesu kompilacije. Ova zastavica je potrebna kada koristite Babel za transpiliranje kako bi se zajamčila kompatibilnost.
Razumijevanje procesa uvoza i izvoza naredbi, kao i korištenje oznake 'isolatedModules', od velike je pomoći kada se krećete po ovim problemima kompilacije Typescript-a.