📖 Teorija
Namų darbas — neišreiškiamos neteisingos būsenos
Namų darbas — neišreiškiamos neteisingos būsenos.
- Aprašyk
Apod. Sukurksrc/types.tssuApodImage,ApodVideoirApodsąjunga. Pabandyk pasiektipic.hdurlnepatikrinęs — kompiliatorius atmes; pridėkif (pic.media_type === 'image')— atrakins. - Ištaisyk 15 pamokos klaidas. Grįžk į
detail.ts: pakeiskpic.hdurlįpic.media_type === 'image' ? pic.hdurl : undefined(arba narrowinimą) ir apsaugokpic.copyright.npm run typecheck— švaru. - Literalų sąjunga. Aprašyk
Rating. Pabandykconst r: Rating = 47— klaida.const r: Rating = 5— ok. - LoadStatus. Aprašyk
LoadStatussąjungą irAppState. Įrodyk, kad negali sukonstruoti „kraunama IR klaida": pabandykstatus = { state: 'loading', message: 'x' }— klaida (loadingneturimessage). - Pamąstyk apie principą. Kur dar programoje „neteisinga būsena" galėtų būti padaryta neišreiškiama? (Pvz.
SortKey,Theme, maršrutai.)
Privalomi testai:
- Susiaurinimo testas:
hdurlpasiekiamas tik pomedia_typepatikros. - Neišreiškiamumo testas:
{ state: 'loading', error: ... }nekompiliuojasi.
Atsiskaitymui: ekrano nuotraukos: (1) hdurl klaida be patikros ir ✓ su patikra, (2) Rating = 47 klaida, (3) neįmanoma „loading + error" būsena.
Toliau. Tipai aprašo, ko tikiesi. Bet 17 pamokoje pamatysim skylę:
response.json()grąžinaany— tipai netikrina, ką gavai iš tikro serverio. Išmoksim tipo sargus (value is Apod), kad prie tinklo ribos nepatikimi duomenys taptų patikimu tipu.