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.calleehasználata nem engedélyezett - A
withkulcsszó 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.