TypeScript Academy · Oppitunti

Tiukkuusasetukset

Ottakaa tiukkuusasetukset käyttöön turvallisemman koodin saavuttamiseksi: strict, noImplicitAny, exactOptionalPropertyTypes ja noUncheckedIndexedAccess.

Oppitunti 1/38 vaihetta

Tiukkuusasetukset on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 3 oppituntia.

Johdanto

Tavoite: Ottakaa käyttöön tärkeimmät strictness-asetukset ja ymmärtäkää niiden toiminta. Nämä asetukset aikaistavat virheiden havaitsemista ja parantavat IDE:n ehdotuksia.

  • strict
  • noImplicitAny
  • exactOptionalPropertyTypes
  • noUncheckedIndexedAccess

strict + noImplicitAny

strict ottaa käyttöön useita tarkistuksia kerralla. noImplicitAny kieltää tyypittömät parametrit ja muuttujat, joiden tyypiksi muuten tulisi oletusarvoisesti any.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true
  }
}

// Effect demo
function sum(a, b) { // Error: implicit any
  return a + b;
}

function sumOk(a: number, b: number): number {
  return a + b;
}

exactOptionalPropertyTypes

exactOptionalPropertyTypes erottaa toisistaan puuttuvan ja olemassa olevan mutta undefined-arvoisen kentän. Tämä sopii erinomaisesti API-mallinnukseen.

// exactOptionalPropertyTypes: true
interface User { name?: string }

const u1: User = {};          // ok: name is absent
const u2: User = { name: undefined }; // Error when exactOptionalPropertyTypes is true

function greet(u: User) {
  if ("name" in u) {
    // name exists but could be undefined without this flag
    console.log("Hi", u.name);
  }
}

Indeksoitu käyttö (taulukko)

Taulukon indeksoinnin tulostyyppi on nyt T | undefined. Tarkistakaa arvo ennen sen käyttöä ajonaikaisten kaatumisten välttämiseksi.

// noUncheckedIndexedAccess: true
const xs: number[] = [1,2,3];
const maybe = xs[5]; // type: number | undefined
if (maybe !== undefined) {
  console.log(maybe.toFixed(0));
}

Indeksoitu käyttö (map)

Olion ja Record<K,V>-tyypin indeksoinnin tuloksiin sisältyy undefined, kunnes olette varmistaneet arvon olemassaolon.

// Also affects records/maps
const byId: Record<string, { id: string }> = {};
const item = byId["x"]; // { id: string } | undefined
if (item) {
  console.log(item.id);
}

Strict-esiasetus

Aloittakaa strict-asetuksella ja löysentäkää sitä vain tarvittaessa. Nämä asetukset estävät yleisiä virheitä lisäämättä juuri lainkaan häiriöitä uuteen koodiin.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedIndexedAccess": true
  }
}

Indeksoidun käytön tarkistus

Pikatarkistus: Mitä noUncheckedIndexedAccess muuttaa?

Kertaus

Kertaus: strict ottaa käyttöön turvallisemmat oletukset; noImplicitAny löytää puuttuvat tyypit; exactOptionalPropertyTypes mallintaa valinnaiset kentät täsmällisesti; noUncheckedIndexedAccess edellyttää olemassaolon tarkistamista.

Aloita maksutta

Opi TypeScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
101
Oppitunnit
352

Usein kysytyt kysymykset

Onko oppitunti ”Tiukkuusasetukset” ilmainen?

Kyllä – oppitunnin ”Tiukkuusasetukset” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Tiukkuusasetukset”?

Ottakaa tiukkuusasetukset käyttöön turvallisemman koodin saavuttamiseksi: strict, noImplicitAny, exactOptionalPropertyTypes ja noUncheckedIndexedAccess. Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/3.

Kuinka kauan ”Tiukkuusasetukset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?

Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Tiukkuusasetukset
  2. Target-, lib-, module- ja JSX-asetukset
  3. Project References (johdanto)
← Takaisin: TypeScript Academy