typescript - Eliminarea --always-strict din 'tsconfig.json' într-un modul ESM


ESM & "use strict"


De la lansarea următoarelor flag-uri tsconfig.json...

  • $ tsc --module "Node16"
  • $ tsc --moduleResolution "Node16"

...Am scris doar module JavaScript standardizate ES6, în "TypeScript". Înțelegerea mea este că adăugarea lui "use strict"; într-un document JavaScript este ca și cum ai adăuga o directivă de parsare documentului (ar putea chiar să fie o directivă de parsare, nu știu exact). Această afirmație unică informează motorul JavaScript (când motorul JS interpretează afirmația) că anumite reguli trebuie aplicate.

Regulile „use strict” includ, dar nu se limitează la...

  • arguments.callee nu este permis
  • Cuvântul cheie with nu este permis
  • Cheile unui obiect trebuie să fie unice
  • și câțiva alții pe care nu-mi amintesc momentan...

2B Frank, detaliile despre "use strict" nu sunt atât de importante în contextul acestei întrebări. Ceea ce contează cu adevărat este înțelegerea mea despre modul în care regulile use-strict sunt implementate în ES-Module. Din ce am înțeles, ele fac parte din specificația standardului ESM și, prin urmare, nu există niciun motiv pentru ca "use strict"; să fie adăugat în fișierele dintr-un ES-Module.

Flagul TSC --alwaysStrict


Conform documentației TypeScriptLang.org, flagul tsc, "alwaysStrict": true, asigură că fișierele sunt emise fiecare cu "use strict"; în partea de sus a lor. Având în vedere că ESM implementează regulile "use strict", fără necesitatea de a adăuga declarația "use strict"; în fișier, nu ar trebui să fie sigur să încetăm pur și simplu adăugarea "alwaysStrict": true în fișierele tsconfig.json care se află în proiecte ESM?

Inițial am întrebat pentru că erau câteva Repozitorii pe care le urmăream pe GitLab și GitHub, și am observat că niciunul nu omiterea "alwaysStrict". Toate încă îl includeau. Apoi, un alt aspect mi-a devenit clar în comentarii, după ce versiunea originală a acestei întrebări a fost redactată (de atunci am editat întrebarea pentru greșeli de ortografie și gramatică, precum și propoziții lungi și nomenclatură incorectă (pe care am corectat-o).

Deci, pe scurt, ceea ce vreau să fac este să elimin "alwaysStrict" dacă pot face acest lucru fără riscuri de consecințe negative. Adică, dacă este inutil, de ce să îl păstrez? Așadar, aș vrea să știu fie cum pot afla dacă îl pot elimina în siguranță, fie care sunt posibilele implicații ale eliminării sale. Este doar o pierdere de spațiu sau există circumstanțe în care aș putea dori în continuare "alwaysStrict" în fișierul meu tsconfig.json și/sau "use strict" în fișierele proiectului JavaScript emise.