tsconfig.json — kompiliatorius
Kodo stulpelyje — tsconfig.json, kompiliatoriaus konfigūracija. Svarbiausia eilutė:
"strict": true
Be griežtojo režimo TypeScript beveik nieko negaudo — tai tiesiog „JavaScript su papildoma sintakse". Su juo kompiliatorius pradeda reikalauti tų dviejų apsaugų, kurias vanilla pamiršdavo. (Ir tai sąmoningai tik pagrindas: 18 pamoka įjungia dar griežtesnius flag'us — noUncheckedIndexedAccess, exactOptionalPropertyTypes — po vieną, kad matytum, ką kiekvienas pagauna.)
Dvi eilutės, vertos dėmesio:
"noEmit": true—tscnegeneruoja.js. Kodėl? Nes surinkimą (bundling) atlieka Vite.tscčia — tik tikrintojas. Du įrankiai, du darbai:tsctikrina tipus, Vite verčia ir pakuoja."include": ["src"]— tikrinam tiksrc/aplanką (ten gyvens.tsfailai).
Patikrink. Perkelk vieną vanilla failą į .ts (pvz. detail.ts su pic.hdurl ir pic.copyright.trim()), tada:
npm run typecheck
Turi pamatyti būtent tas dvi klaidas:
src/views/detail.ts:14 TS2551: Property 'hdurl' does not exist on type 'Apod'.
src/views/detail.ts:41 TS18048: 'pic.copyright' is possibly 'undefined'.
Kompiliatorius ką tik rado tikras klaidas kode, kuris veikė. Kaip jas ištaisyti (diskriminuota sąjunga, optional laukai) — 16 pamoka.
Spąstai (
.tsnaršyklėje). Pabandyk<script type="module" src="detail.ts">tiesiogiai — naršyklė nekraus arba mes klaidą: ji nemoka.ts. Tipai turi būti iškirpti pirma. Todėl nuo dabar leidžiam ne perpython -m http.server, o pernpm run dev— Vite ant skrydžio verčia.tsį.js. Tai — ta „surinkimo pakopa", kurios 14 pamokų neturėjom; ją atsinešė tipai.