Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: fortran1986 12. 10. 2025, 20:16:32
-
VSCode resp tslint mi zakazuje používať keyword module. Pritom celé JS / TS je o moduloch. Nameisto modulu mi to vnucuje keyword namespace.
Každopádne v TS je modul synonimum pre namespace (čo je úplná absurdita vymyslená Microsoftom), v iných jazykoch je NS čisto len menný priestor (C++, C#).
A modul je skutočne element jazyka, ktorý sa stará aj o viditelnosť (exporty) taktiež modul môže byť v jednom súbore len jeden zato namespace môže byť rozdelený do viac súborov.
Potom sú jazyky ktoré majú aj moduly s parametrickým polymorfizmom, ale to teraz nejdem riešiť. Proste modul má bližšie k static class ako ku namespace. Z tohto pohľadu ide v TS o moduly a skutočné namespaces TS ani JS nemá. Inými slovami chcem používať kľúčové slovo module. Ako to mám povoliť? Tipy od AI nefungujú.
-
Vzhledem k tomu, že static class je nesmysl, tak se zkus naučit používat namespace.
-
Ak chceš, môžeš si vytvoriť TS transformer, ktorý ti preloží module do namespace keywordu. Je to jednoduché docieliť, aj keď nezmyselné robiť to.
-
Termín "module" už má v ECMAScript-e svoj význam a TypeScript ho len rešpektuje (t.j. ES6 prípadne CommojJS modules). Preto sa táto ďalšia/iná vlastnosť volá "namespace" a príde mi to ako technicky presné pomenovanie.
Každopádne v TS je modul synonimum pre namespace
Nie je, sú to dve odlišné veci. Možno ťa mýli, že pred dávnymi rokmi sa terminológia TypeScript-u trochu líšia, ale to je fakt dávno.
v iných jazykoch je NS čisto len menný priestor (C++, C#).
Takto ho vnímam aj v TypeScript-e.
A modul je skutočne element jazyka, ktorý sa stará aj o viditelnosť (exporty) taktiež modul môže byť v jednom súbore len jeden zato namespace môže byť rozdelený do viac súborov.
Takto to v TypeScript-e je.
Ale možno mi len niečo uniká, namespaces vôbec nevyužívam.
-
Pokud chcete opravdu poradit, dejte sem příklad kódu, jak ho chcete napsat, a jakou chybu na tom TSlint hlásí.