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

Namų darbas — griežtumo nauda

Namų darbas — griežtumo nauda.

  1. Įjunk flag'us. tsconfig.json įsitikink, kad yra strict, noUncheckedIndexedAccess, exactOptionalPropertyTypes. Paleisk npm run typecheck — tikriausiai atsiras naujų klaidų. Tai gerai: jos atskleidžia prielaidas.
  2. noUncheckedIndexedAccess. Rask arr[0] naudojimą (pvz. „naujausia nuotrauka"). Apdorok undefined atvejį. Įrodyk: be patikros — klaida; su patikra — švaru.
  3. assertNever. Į switch per LoadStatus (arba SortKey, Route) default šakoje pridėk assertNever. Tada pridėk naują sąjungos variantą ir stebėk, kaip npm run typecheck nurodo visus neapdorotus switch'us.
  4. exactOptionalPropertyTypes. Pabandyk priskirti { hdurl: undefined } ten, kur hdurl?: string. Su flag'u — klaida. Suprask skirtumą: „nėra lauko" ≠ „laukas su undefined".
  5. Generikas. Įsitikink, kad debounce išsaugo argumentų tipus: debounce((n: number) => ...) grąžinta funkcija turi priimti number, ne any.

Privalomi testai:

  • Indekso testas: arr[0] be patikros nekompiliuojasi.
  • Išsamumo testas: naujas sąjungos variantas sulaužo kiekvieną neatnaujintą switch.

Atsiskaitymui: ekrano nuotraukos: (1) noUncheckedIndexedAccess klaida ir taisymas, (2) assertNever sulaužytas pridėjus variantą (rodo visus switch'us).

Toliau — Part 4. Programa tipizuota ir griežta. 19 pamokoje ją išleisim: Vite produkcijos build, aplinkos kintamieji ir diegimas. Ir svarbiausia pamoka apie raktus: VITE_NASA_API_KEY atsiduria pakuotėje — kiekvienas gali perskaityti. Kada tai gerai, o kada — pavojinga.