TypeScript Academy · Oppitunti

Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla

Varmistakaa tyyppien oikeellisuus ajonaikaisen toiminnan rinnalla

Oppitunti 4/413 vaihetta

Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. 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ä 4 oppituntia.

Tervetuloa

Tyyppien testaaminen itsessään — ei vain ajonaikaisen toiminnan testaaminen — varmistaa, että TypeScript-apuohjelmat ja geneeriset tyypit toimivat oikein.

Miksi tyyppejä testataan

Geneerisissä apuohjelmissa ja ehtotyypeissä voi olla virheitä, jotka vaikuttavat vain tiettyihin tyyppiparametreihin. Tyyppitestit löytävät nämä virheet.

Vitestin expectTypeOf

Vitest tarjoaa expectTypeOf-funktion käännösaikaisia tyyppiväitteitä varten.
import { expectTypeOf } from 'vitest';
expectTypeOf(42).toBeNumber();
expectTypeOf('hello').toBeString();

Paluuarvotyyppien assertiot

Varmistakaa funktion paluutyyppi.
import { identity } from '../src/utils';
expectTypeOf(identity(42)).toEqualTypeOf<number>();
expectTypeOf(identity('hi')).toEqualTypeOf<string>();

tsd-kirjasto

tsd on CLI-työkalu TypeScript-määritystiedostojen tyyppitestaukseen.
npm install --save-dev tsd

tsd-assertiot

Kirjoittakaa .test-d.ts-tiedostoja tsd-assertioilla.
import { expectType, expectError } from 'tsd';
import { add } from '../src';
expectType<number>(add(1, 2));
expectError(add('a', 'b'));

expect-type-kirjasto

expect-type-kirjasto tarjoaa Jest-yhteensopivat tyyppiväitteet.
import { expectTypeOf } from 'expect-type';
expectTypeOf<User>().toHaveProperty('name').toBeString();

Ehtotyyppien testaaminen

Varmistakaa, että ehtotyypit tuottavat oikean tuloksen erilaisilla syötteillä.
type IsArray<T> = T extends any[] ? true : false;
expectTypeOf<IsArray<string[]>>().toEqualTypeOf<true>();
expectTypeOf<IsArray<string>>().toEqualTypeOf<false>();

Kuvattujen tyyppien testaaminen

Varmistakaa, että kuvattujen tyyppien apuohjelmat tuottavat oikean rakenteen.
type Mutable = { -readonly [K in keyof ReadonlyUser]: ReadonlyUser[K] };
expectTypeOf<Mutable['name']>().toBeString();
expectTypeOf<Mutable>().not.toMatchTypeOf<Readonly<Mutable>>();

tsd:n suorittaminen CI:ssä

Lisätkää tsd CI-putkeen, jotta tyyppien regressiot havaitaan.
// package.json
{ "scripts": { "test:types": "tsd" } }

Tyyppitestit ja ajonaikaiset testit

Tyyppitestit suoritetaan käännösaikana, joten niiden ajonaikaiset kustannukset ovat nolla. Ajonaikaiset testit varmistavat toiminnan. Molempia tarvitaan.

Pikatarkistus

Mitä `expectTypeOf(add(1, 2)).toEqualTypeOf()` varmistaa?

Kertaus

Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla: olette hallinneet keskeiset käsitteet ja toimintamallit.
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 ”Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla” ilmainen?

Kyllä – oppitunnin ”Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla” 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ä 4 oppituntia.

Mitä opin oppitunnilla ”Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla”?

Varmistakaa tyyppien oikeellisuus ajonaikaisen toiminnan rinnalla 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 4/4.

Kuinka kauan ”Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla”-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. Jestin käyttöönotto TypeScriptille ts-jestillä
  2. Tyyppiturvallisten yksikkötestien kirjoittaminen
  3. Moduulien ja funktioiden mockaus TypeScriptissä
  4. Tyyppien testaaminen expectTypeOf- ja tsd-työkaluilla
← Takaisin: TypeScript Academy