Tema
/
Interneto svetainių kliento dalies kūrimas JS
📖 Teorija

Namų darbas — pamatyk kompiliatorių dirbant

Namų darbas — pamatyk kompiliatorių dirbant.

  1. Įrankiai. Įsidiek Node (jei dar neturi). Sukurk package.json ir tsconfig.json, paleisk npm install. Turi atsirasti node_modules/ su typescript ir vite.
  2. Perkelk vieną failą. Nukopijuok vanilla detail.js į src/views/detail.ts ir sukurk minimalų src/types.ts su Apod tipu (kitą pamoką jį išplėsim). Palik pic.hdurl ir pic.copyright.trim() be apsaugų.
  3. Paleisk tikrinimą. npm run typecheck. Užfiksuok dvi klaidas: TS2551 (hdurl) ir TS18048 (copyright). Tai — tikros klaidos veikiančiame kode.
  4. Įrodyk „.ts naršyklėje neveiks". Pabandyk detail.ts prijungti tiesiogiai per <script> ir per python -m http.server. Neveiks. Paleisk npm run dev — Vite jį suverčia, veikia.
  5. Pamąstyk. Kiek dar tokių optional/union klaidų slypi visame vanilla kode? (Atsakymą pamatysi, kai perkelsi visą programą.)

Privalomi testai:

  • Klaidų testas: npm run typecheck parodo TS2551 ir TS18048.
  • Įrankių testas: .ts veikia per npm run dev, ne per statinį serverį.

Atsiskaitymui: ekrano nuotraukos: (1) npm run typecheck su dviem klaidomis, (2) programa veikianti per Vite dev serverį.

Toliau. Pamatėm problemą ir gavom įrankį. 16 pamokoje išspręsim tas klaidas: aprašysim Apod kaip diskriminuotą sąjungą pagal media_type, ir „pasiekti hdurl vaizdo įraše" taps tiesiog nekompiliuojama. Klaida virsta neįmanoma parašyti.