typescript - Uklanjanje --always-strict iz 'tsconfig.json' u ESM modulu
ESM & "use strict"
Od objave sljedećih tsconfig.json zastavica...
$ tsc --module "Node16"$ tsc --moduleResolution "Node16"
...Pišem samo ES6-standardizirane JavaScript module, u "TypeScript". Razumijem da dodavanje "use strict"; u JavaScript dokument, slično je dodavanju direktive za parsiranje u dokument (možda je čak i direktiva za parsiranje, zapravo ne znam baš sigurno). Jedinstvena izjava obavještava JavaScript motor (kada JS-motor interpretira izjavu) da se određena pravila moraju provoditi.
Pravila "use strict" uključuju, ali nisu ograničena na...
arguments.calleenije dopušten- Ključna riječ
withnije dopuštena - Ključevi objekta moraju biti jedinstveni
- i još nekih drugih kojih se trenutno ne mogu sjetiti...
2B Frank, detalji "use strict" nisu toliko važni u kontekstu ovog pitanja. Ono što stvarno znači, jest moje razumijevanje kako su pravila use-strict implementirana u ES modulima. Koliko sam shvatio, ona su dio specifikacije ESM standarda, i stoga nema razloga da se "use strict"; dodaje u datoteke u ES modulu.
TSC --alwaysStrict zastavica
Prema dokumentaciji TypeScriptLang.org, zastavica tsc, "alwaysStrict": true, osigurava da se svaki fajl generira s "use strict"; na vrhu. S obzirom na to da ESM implementira pravila "use strict", bez potrebe za dodavanjem "use strict"; izjave u fajl, zar ne bi bilo sigurno jednostavno prestati dodavati "alwaysStrict": true u tsconfig.json fajlove koji su u ESM projektima?
Izvorno sam pitao jer je bilo nekoliko repozitorija koje sam pratio na GitLabu i GitHubu, i primijetio sam da nijedan nije izostavio "alwaysStrict". Svi su ga i dalje uključivali. Zatim mi je još jedan aspekt postao jasan u komentarima, nakon što je izvorna verzija ovog pitanja bila napisana (od tada sam uredio pitanje zbog pravopisnih i gramatičkih pogrešaka, kao i zbog dužih rečenica i netočne nomenklature (što sam popravio).
Dakle, ukratko, ono što želim napraviti je ukloniti "alwaysStrict" ako to mogu učiniti bez rizika od negativnih posljedica. Mislim, ako je beskoristan, zašto ga imati? Dakle, želio bih znati ili kako mogu saznati da ga mogu sigurno ukloniti, ili jednostavno koje bi mogle biti moguće posljedice njegovog uklanjanja. Je li to samo gubitak prostora, ili postoje okolnosti u kojima bih ipak želio imati "alwaysStrict" u svom tsconfig.json datoteci, i/ili "use strict" u generiranim JavaScript datotekama projekta.