Fórum Root.cz

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

Název: Typescript module vs namespace
Přispěvatel: 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ú.
Název: Re:Typescript module vs namespace
Přispěvatel: Kit 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 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 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.

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

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

Takto ho vnímam aj v TypeScript-e.

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




Název: Re:Typescript module vs namespace
Přispěvatel: Filip Jirsák (forum) 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 14. 10. 2025, 16:19:26
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.

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

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

Takto ho vnímam aj v TypeScript-e.

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

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 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 14. 10. 2025, 20:46:52
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.

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

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

Takto ho vnímam aj v TypeScript-e.

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

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