Weboldal keresés

typescript - A --always-strict elhagyása a 'tsconfig.json'-ból egy ESM modulban


ESM & "use strict"


A következő tsconfig.json zászlók kiadása óta...

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

...Én csak ES6-szabványos JavaScript modulokat írtam, "TypeScript"-ben. Úgy értem, hogy a "use strict"; hozzáadása egy JavaScript dokumentumhoz olyan, mintha egy elemzési irányelvet adnánk a dokumentumhoz (lehetséges, hogy ez ténylegesen egy elemzési irányelv, de igazán nem tudom). Az egyedi utasítás azt jelzi a JavaScript motor számára (amikor a JS-motor értelmezi az utasítást), hogy bizonyos szabályokat érvényesíteni kell.

A "use strict" szabályai tartalmazzák, de nem kizárólagosan...

  • A arguments.callee használata nem engedélyezett
  • A with kulcsszó nem engedélyezett
  • Egy objektum kulcsainak egyedieknek kell lenniük
  • és néhány más, amire most hirtelen nem emlékszem...

2B Frank, a "use strict" részletei nem annyira fontosak ebben a kérdéskörben. Ami igazán számít, az az, hogy megértem, hogyan valósítják meg a use-strict szabályokat az ES-modulokban. Amennyire én látom, ezek az ESM-szabvány specifikációjának részei, és ezért nincs szükség arra, hogy a "use strict"; hozzáadásra kerüljön az ES-modulok fájljaihoz.

A TSC --alwaysStrict kapcsoló


A TypeScriptLang.org dokumentációja szerint a tsc kapcsoló, "alwaysStrict": true, biztosítja, hogy a fájlok mindegyikét "use strict"; sorral adják ki a tetejükön. Tekintettel arra, hogy az ESM megvalósítja a "use strict"; szabályokat, anélkül, hogy a "use strict"; utasítást hozzá kellene adni a fájlhoz, nem lenne biztonságos egyszerűen abbahagyni a "alwaysStrict": true hozzáadását az ESM projektek tsconfig.json fájljaihoz?

Eredetileg azért kérdeztem, mert volt néhány tárhely (Repository), amit követtem a GitLabon és a GitHubon, és észrevettem, hogy egyikük sem hagyta ki az "alwaysStrict" beállítást. Mindegyikben továbbra is benne volt. Aztán egy másik szempont is világossá vált számomra a kommentekben, miután az eredeti kérdés verzióját megírtam (azóta a kérdést szerkesztettem helyesírási és nyelvtani hibák, összetett mondatok, valamint helytelen nevezéktan javítása céljából, amelyet kijavítottam).

Szóval, röviden összefoglalva, amit szeretnék csinálni, az az, hogy eltávolítsam az „alwaysStrict”-et, ha megtehetem anélkül, hogy negatív következmények kockázata állna fenn. Mármint, ha haszontalan, miért lenne benne? Szóval szeretném tudni, vagy hogyan tudhatom meg, hogy biztonságosan eltávolíthatom-e, vagy csak mik a lehetséges következményei az eltávolításának. Csak helypazarlásról van szó, vagy vannak olyan körülmények, amikor még mindig szükségem lehet az „alwaysStrict”-re a tsconfig.json fájlomban, és/vagy a „use strict”-re a generált JavaScript projekt-build fájljaimban.