Skip to content
Vitest 3
Main Navigation Útmutató & APIKonfigurációBöngésző módHaladó API
3.2.0
2.1.9
1.6.1
0.34.6

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

Megjelenés

Sidebar Navigation

Bevezetés

Miért Vitest

Első lépések

Jellemzők

Vitest konfigurálása

API

Teszt API Referencia

Mock Függvények

Vi

expect

expectTypeOf

assert

assertType

Útmutató

Parancssori felület

Teszt szűrés

Tesztprojektek

Jelentéskészítők (Reporters)

Kódlefedettség

Snapshot

Mockolás

Párhuzamos végrehajtás

Típusok Tesztelése

Vitest UI

Forráskódba ágyazott tesztelés

Tesztkörnyezet

Teszt annotációk

Tesztkörnyezet

Matcherek kiterjesztése

IDE Integrációk

Hibakeresés

Gyakori hibák

Migrációs útmutató

Migrálás a Vitest 3.0-ra

Migrálás Jesstről

Teljesítmény

Teszt teljesítmény profilozása

Teljesítmény javítása

Böngésző üzemmód

Haladó API

Összehasonlítás más tesztfuttatókkal

Ezen az oldalon

expectTypeOf ​

WARNING

Futtatás közben ez a függvény nem végez semmilyen műveletet. A típusellenőrzés engedélyezéséhez ne felejtsd el átadni a --typecheck jelzőt.

  • Típus: <T>(a: unknown) => ExpectTypeOf

not ​

  • Típus: ExpectTypeOf

Minden állítást tagadhatsz a .not tulajdonság használatával.

toEqualTypeOf ​

  • Típus: <T>(expected: T) => void

Ez az összehasonlító ellenőrzi, hogy a típusok teljesen egyenlőek-e. Ez az összehasonlító nem jelez hibát, ha két objektumnak különböző értékei vannak, de azonos a típusa. Azonban hibát jelez, ha egy objektumból hiányzik egy tulajdonság.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf({ a: 1 }).toEqualTypeOf<{ a: number }>();
expectTypeOf({ a: 1 }).toEqualTypeOf({ a: 1 });
expectTypeOf({ a: 1 }).toEqualTypeOf({ a: 2 });
expectTypeOf({ a: 1, b: 1 }).not.toEqualTypeOf<{ a: number }>();

toMatchTypeOf ​

  • Típus: <T>(expected: T) => void

Ez az összehasonlító ellenőrzi, hogy az elvárt típus kiterjeszti-e a megadott típust. Ez különbözik a toEqual-tól, és inkább hasonlít az expect toMatchObject() metódusához. Ezzel az összehasonlítóval ellenőrizheted, hogy egy objektum „illeszkedik-e” egy típushoz.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf({ a: 1, b: 1 }).toMatchTypeOf({ a: 1 });
expectTypeOf<number>().toMatchTypeOf<string | number>();
expectTypeOf<string | number>().not.toMatchTypeOf<number>();

extract ​

  • Típus: ExpectTypeOf<ExtractedUnion>

A .extract segítségével szűkítheted a típusokat további teszteléshez.

ts
import { expectTypeOf } from 'vitest';

type ResponsiveProp<T> = T | T[] | { xs?: T; sm?: T; md?: T };

interface CSSProperties {
  margin?: string;
  padding?: string;
}

function getResponsiveProp<T>(_props: T): ResponsiveProp<T> {
  return {};
}

const cssProperties: CSSProperties = { margin: '1px', padding: '2px' };

expectTypeOf(getResponsiveProp(cssProperties))
  .extract<{ xs?: any }>() // kinyeri az unió utolsó típusát
  .toEqualTypeOf<{
    xs?: CSSProperties;
    sm?: CSSProperties;
    md?: CSSProperties;
  }>();

expectTypeOf(getResponsiveProp(cssProperties))
  .extract<unknown[]>() // kinyer egy tömböt az unióból
  .toEqualTypeOf<CSSProperties[]>();

WARNING

Ha a megadott típus nem található az unióban, a .extract never-t ad vissza.

exclude ​

  • Típus: ExpectTypeOf<NonExcludedUnion>

A .exclude segítségével eltávolíthatsz típusokat egy unióból további teszteléshez.

ts
import { expectTypeOf } from 'vitest';

type ResponsiveProp<T> = T | T[] | { xs?: T; sm?: T; md?: T };

interface CSSProperties {
  margin?: string;
  padding?: string;
}

function getResponsiveProp<T>(_props: T): ResponsiveProp<T> {
  return {};
}

const cssProperties: CSSProperties = { margin: '1px', padding: '2px' };

expectTypeOf(getResponsiveProp(cssProperties))
  .exclude<unknown[]>()
  .exclude<{ xs?: unknown }>() // vagy csak .exclude<unknown[] | { xs?: unknown }>()
  .toEqualTypeOf<CSSProperties>();

WARNING

Ha nem található típus az unióban, a .exclude never-t ad vissza.

returns ​

  • Típus: ExpectTypeOf<ReturnValue>

A .returns segítségével kinyerheted egy függvény visszatérési típusát.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(() => {}).returns.toBeVoid();
expectTypeOf((a: number) => [a, a]).returns.toEqualTypeOf([1, 2]);

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

parameters ​

  • Típus: ExpectTypeOf<Parameters>

A .parameters segítségével kinyerheted a függvény paramétereit, hogy állításokat hajts végre rajtuk. A paraméterek tömbként kerülnek visszaadásra.

ts
import { expectTypeOf } from 'vitest';

type NoParam = () => void;
type HasParam = (s: string) => void;

expectTypeOf<NoParam>().parameters.toEqualTypeOf<[]>();
expectTypeOf<HasParam>().parameters.toEqualTypeOf<[string]>();

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

TIP

Használhatod a .toBeCallableWith összehasonlítót is, mint kifejezőbb állítást.

parameter ​

  • Típus: (nth: number) => ExpectTypeOf

Egy adott függvény argumentumát a .parameter(number) hívással nyerheted ki, hogy további állításokat hajts végre rajta.

ts
import { expectTypeOf } from 'vitest';

function foo(a: number, b: string) {
  return [a, b];
}

expectTypeOf(foo).parameter(0).toBeNumber();
expectTypeOf(foo).parameter(1).toBeString();

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

constructorParameters ​

  • Típus: ExpectTypeOf<ConstructorParameters>

Ezzel a metódussal kinyerheted a konstruktor paramétereit értékek tömbjeként, és állításokat hajthatsz végre rajtuk.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(Date).constructorParameters.toEqualTypeOf<
  [] | [string | number | Date]
>();

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

TIP

Használhatod a .toBeConstructibleWith összehasonlítót is, mint kifejezőbb állítást.

instance ​

  • Típus: ExpectTypeOf<ConstructableInstance>

Ez a tulajdonság hozzáférést nyújt a matcherekhez, amelyek a megadott osztály egy példányán hajthatók végre.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(Date).instance.toHaveProperty('toISOString');

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

items ​

  • Típus: ExpectTypeOf<T>

A .items segítségével lekérheted a tömb elemtípusát további állítások végrehajtásához.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf([1, 2, 3]).items.toEqualTypeOf<number>();
expectTypeOf([1, 2, 3]).items.not.toEqualTypeOf<string>();

resolves ​

  • Típus: ExpectTypeOf<ResolvedPromise>

Ez az összehasonlító kinyeri egy Promise feloldott értékét, így más állításokat hajthatsz végre rajta.

ts
import { expectTypeOf } from 'vitest';

async function asyncFunc() {
  return 123;
}

expectTypeOf(asyncFunc).returns.resolves.toBeNumber();
expectTypeOf(Promise.resolve('string')).resolves.toBeString();

WARNING

Ha nem promise típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

guards ​

  • Típus: ExpectTypeOf<Guard>

Ez az összehasonlító kinyeri az őr értékét (pl. v is number), így állításokat hajthatsz végre rajta.

ts
import { expectTypeOf } from 'vitest';

function isString(v: any): v is string {
  return typeof v === 'string';
}
expectTypeOf(isString).guards.toBeString();

WARNING

never-t ad vissza, ha az érték nem őrfüggvény, így nem láncolható más összehasonlítókkal.

asserts ​

  • Típus: ExpectTypeOf<Assert>

Ez az összehasonlító kinyeri az állítás értékét (pl. assert v is number), így állításokat hajthatsz végre rajta.

ts
import { expectTypeOf } from 'vitest';

function assertNumber(v: any): asserts v is number {
  if (typeof v !== 'number') {
    throw new TypeError('Nope !');
  }
}

expectTypeOf(assertNumber).asserts.toBeNumber();

WARNING

never-t ad vissza, ha az érték nem állításfüggvény, így nem láncolható más összehasonlítókkal.

toBeAny ​

  • Típus: () => void

Ezzel az összehasonlítóval ellenőrizheted, hogy a megadott típus any típusú-e. Ha a típus túl specifikus, a teszt sikertelen lesz.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf<any>().toBeAny();
expectTypeOf({} as any).toBeAny();
expectTypeOf('string').not.toBeAny();

toBeUnknown ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus unknown típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf().toBeUnknown();
expectTypeOf({} as unknown).toBeUnknown();
expectTypeOf('string').not.toBeUnknown();

toBeNever ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus never típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf<never>().toBeNever();
expectTypeOf((): never => {}).returns.toBeNever();

toBeFunction ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus function típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(42).not.toBeFunction();
expectTypeOf((): never => {}).toBeFunction();

toBeObject ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus object típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(42).not.toBeObject();
expectTypeOf({}).toBeObject();

toBeArray ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus Array<T> típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(42).not.toBeArray();
expectTypeOf([]).toBeArray();
expectTypeOf([1, 2]).toBeArray();
expectTypeOf([{}, 42]).toBeArray();

toBeString ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus string típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(42).not.toBeString();
expectTypeOf('').toBeString();
expectTypeOf('a').toBeString();

toBeBoolean ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus boolean típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(42).not.toBeBoolean();
expectTypeOf(true).toBeBoolean();
expectTypeOf<boolean>().toBeBoolean();

toBeVoid ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus void típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(() => {}).returns.toBeVoid();
expectTypeOf<void>().toBeVoid();

toBeSymbol ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus symbol típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(Symbol(1)).toBeSymbol();
expectTypeOf<symbol>().toBeSymbol();

toBeNull ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus null típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(null).toBeNull();
expectTypeOf<null>().toBeNull();
expectTypeOf(undefined).not.toBeNull();

toBeUndefined ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus undefined típusú-e.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(undefined).toBeUndefined();
expectTypeOf<undefined>().toBeUndefined();
expectTypeOf(null).not.toBeUndefined();

toBeNullable ​

  • Típus: () => void

Ez az összehasonlító ellenőrzi, hogy a megadott típus tartalmazhat-e null vagy undefined értéket.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf<undefined | 1>().toBeNullable();
expectTypeOf<null | 1>().toBeNullable();
expectTypeOf<undefined | null | 1>().toBeNullable();

toBeCallableWith ​

  • Típus: () => void

Ez az összehasonlító biztosítja, hogy a megadott függvényt egy paraméterkészlettel hívhatod meg.

ts
import { expectTypeOf } from 'vitest';

type NoParam = () => void;
type HasParam = (s: string) => void;

expectTypeOf<NoParam>().toBeCallableWith();
expectTypeOf<HasParam>().toBeCallableWith('some string');

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

toBeConstructibleWith ​

  • Típus: () => void

Ez az összehasonlító biztosítja, hogy új példányt hozhatsz létre egy konstruktor paraméterkészlettel.

ts
import { expectTypeOf } from 'vitest';

expectTypeOf(Date).toBeConstructibleWith(new Date());
expectTypeOf(Date).toBeConstructibleWith('01-01-2000');

WARNING

Ha nem függvény típuson használják, never-t ad vissza, így nem láncolható más összehasonlítókkal.

toHaveProperty ​

  • Típus: <K extends keyof T>(property: K) => ExpectTypeOf<T[K]>

Ez az összehasonlító ellenőrzi, hogy egy tulajdonság létezik-e a megadott objektumon. Ha létezik, akkor ugyanazt az összehasonlító készletet adja vissza a tulajdonság típusára, így az állítások láncolhatók egymás után.

ts
import { expectTypeOf } from 'vitest';

const obj = { a: 1, b: '' };

expectTypeOf(obj).toHaveProperty('a');
expectTypeOf(obj).not.toHaveProperty('c');

expectTypeOf(obj).toHaveProperty('a').toBeNumber();
expectTypeOf(obj).toHaveProperty('b').toBeString();
expectTypeOf(obj).toHaveProperty('a').not.toBeString();
Pager
Előző oldalexpect
Következő oldalassert

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/api/expect-typeof

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team