Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: fortran1986 kdy 12. 10. 2025, 20:16:32

Název: Typescript module vs namespace
Přispěvatel: fortran1986 kdy 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ú.
Název: Re:Typescript module vs namespace
Přispěvatel: Kit kdy 12. 10. 2025, 20:23:31
Vzhledem k tomu, že static class je nesmysl, tak se zkus naučit používat namespace.
Název: Re:Typescript module vs namespace
Přispěvatel: Mlocik97 kdy 12. 10. 2025, 21:28:58
Ak chceš, môžeš si vytvoriť TS transformer, ktorý ti preloží module do namespace keywordu. Je to jednoduché docieliť, aj keď nezmyselné robiť to.
Název: Re:Typescript module vs namespace
Přispěvatel: speculatius kdy 12. 10. 2025, 21:58:10
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.

CitaceKaž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.

Citacev iných jazykoch je NS čisto len menný priestor (C++, C#).

Takto ho vnímam aj v TypeScript-e.

CitaceA 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.




Název: Re:Typescript module vs namespace
Přispěvatel: Filip Jirsák (forum) kdy 12. 10. 2025, 21:58:50
Pokud chcete opravdu poradit, dejte sem příklad kódu, jak ho chcete napsat, a jakou chybu na tom TSlint hlásí.
Název: Re:Typescript module vs namespace
Přispěvatel: fortran1986 kdy 14. 10. 2025, 16:19:26
Citace od: speculatius kdy 12. 10. 2025, 21:58:10
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.

CitaceKaž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.

Citacev iných jazykoch je NS čisto len menný priestor (C++, C#).

Takto ho vnímam aj v TypeScript-e.

CitaceA 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.

v TS nie su odlisne. Ale semanticky je to nezmysel.

>> Takto ho vnímam aj v TypeScript-e.

menný priestor nemá riešiť viditelnosť (exporty), a má byť možné ho definovať vo viacerých súboroch. namespace v TS neni možné definovať vo viacerých súboroch a obsahuje exporty, teda to neni skutočný menný priestor ale modul. TS skutočné menné priestory neobsahuje obsahuje len moduly pomenované menný priestor.

keď si trabant microsoft premnuje na lambo tak stále to bude trabant a nie lambo :D
Název: Re:Typescript module vs namespace
Přispěvatel: fortran1986 kdy 14. 10. 2025, 16:23:30
ale už sa k tejto téme nejdem vyjadrovať odpoveď na nastavenie tslintu som sa nedozvedel, ale už vidím že sa tu schyluje ku flame a na to fakt nemám čas.
Název: Re:Typescript module vs namespace
Přispěvatel: speculatius kdy 14. 10. 2025, 20:46:52
Citace od: fortran1986 kdy 14. 10. 2025, 16:19:26
Citace od: speculatius kdy 12. 10. 2025, 21:58:10
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.

CitaceKaž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.

Citacev iných jazykoch je NS čisto len menný priestor (C++, C#).

Takto ho vnímam aj v TypeScript-e.

CitaceA 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.

v TS nie su odlisne. Ale semanticky je to nezmysel.

>> Takto ho vnímam aj v TypeScript-e.

menný priestor nemá riešiť viditelnosť (exporty), a má byť možné ho definovať vo viacerých súboroch. namespace v TS neni možné definovať vo viacerých súboroch a obsahuje exporty, teda to neni skutočný menný priestor ale modul. TS skutočné menné priestory neobsahuje obsahuje len moduly pomenované menný priestor.

keď si trabant microsoft premnuje na lambo tak stále to bude trabant a nie lambo :D

Si si istý, že si to s niečim nepletieš? Modul v JavaScripte aj TypeScripte je prakticky jeden zdrojový súbor. Namespace je menný priestor definovaný ako `namespace  {...}`. Sú to dve odlišné veci. Ak si myslíš, že je to inak, prosím vysvetli bližšie na príkladoch.
Název: Re:Typescript module vs namespace
Přispěvatel: Michal Molhanec kdy 15. 10. 2025, 16:21:26
Jj, modul a namespace jsou v TS ruzny veci, dokonce je na to extra stranka v dokumentaci https://www.typescriptlang.org/docs/handbook/namespaces-and-modules.html