Typescript module vs namespace

Typescript module vs namespace
« 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ú.


Kit

  • *****
  • 893
    • Zobrazit profil
    • E-mail
Re:Typescript module vs namespace
« Odpověď #1 kdy: 12. 10. 2025, 20:23:31 »
Vzhledem k tomu, že static class je nesmysl, tak se zkus naučit používat namespace.

Mlocik97

  • *****
  • 953
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Typescript module vs namespace
« Odpověď #2 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.

Re:Typescript module vs namespace
« Odpověď #3 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.

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.





Re:Typescript module vs namespace
« Odpověď #4 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í.