Skip to content
Vitest 3
Main Navigation Kılavuz & APIYapılandırmaTarayıcı ModuGelişmiş API
3.2.0
2.1.9
1.6.1
0.34.6

Türkçe

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

Türkçe

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

Görünüm

Sidebar Navigation

Giriş

Neden Vitest

Başlarken

Özellikler

Vitest'i Yapılandırma

API

Test API Referansları

Mock Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Kılavuz

Komut Satırı Arayüzü

Test Filtreleme

Test Projeleri

Raporlayıcılar

Kapsam

Anlık Görüntüler

Mocking

Paralellik

Tür Testleri

Vitest UI

Kaynak İçi Test

Test Ortamı

Test Açıklamaları

Test Ortamı

Eşleştiricileri Genişletme

IDE Entegrasyonları

Hata Ayıklama

Sık Karşılaşılan Hatalar

Geçiş Kılavuzu

Vitest 3.0'a Geçiş

Jest'ten Geçiş

Performans

Test Performansını Profillendirme

Performansı İyileştirme

Tarayıcı Modu

Gelişmiş API

Diğer Test Çalıştırıcılarla Karşılaştırmalar

Bu sayfada

expectTypeOf ​

WARNING

Bu fonksiyon çalışma zamanında hiçbir işlem gerçekleştirmez. Tip kontrolünü etkinleştirmek için --typecheck bayrağını geçirmeniz gerekir.

  • Tip: <T>(a: unknown) => ExpectTypeOf

not ​

  • Tip: ExpectTypeOf

.not özelliğini kullanarak tüm doğrulamaları tersine çevirebilirsiniz.

toEqualTypeOf ​

  • Tip: <T>(expected: T) => void

Bu eşleştirici, tiplerin birbirine tamamen eşit olup olmadığını kontrol eder. İki nesne farklı değerlere sahip olsa bile aynı tipe sahipse başarısız olmaz. Ancak bir nesnede bir özellik eksikse başarısız olur.

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 ​

  • Tip: <T>(expected: T) => void

Bu eşleştirici, beklenen tipin sağlanan tipi kapsayıp kapsamadığını kontrol eder. toEqual'dan farklıdır ve expect'in toMatchObject()'ine daha benzerdir. Bu eşleştirici ile bir nesnenin bir tiple "eşleşip eşleşmediğini" kontrol edebilirsiniz.

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 ​

  • Tip: ExpectTypeOf<ExtractedUnion>

Daha fazla test için tipleri daraltmak amacıyla .extract kullanabilirsiniz.

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 }>() // union'dan son tipi ayıklar
  .toEqualTypeOf<{
    xs?: CSSProperties;
    sm?: CSSProperties;
    md?: CSSProperties;
  }>();

expectTypeOf(getResponsiveProp(cssProperties))
  .extract<unknown[]>() // union'dan bir diziyi ayıklar
  .toEqualTypeOf<CSSProperties[]>();

WARNING

Union'da eşleşen tip bulunamazsa, .extract never döndürür.

exclude ​

  • Tip: ExpectTypeOf<NonExcludedUnion>

Daha fazla test için birleşimden tipleri kaldırmak amacıyla .exclude kullanabilirsiniz.

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 }>() // veya sadece .exclude<unknown[] | { xs?: unknown }>()
  .toEqualTypeOf<CSSProperties>();

WARNING

Birleşimde hiçbir tip bulunamazsa, .exclude never döndürür.

returns ​

  • Tip: ExpectTypeOf<ReturnValue>

Bir fonksiyon tipinin dönüş değerini elde etmek için .returns kullanabilirsiniz.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

parameters ​

  • Tip: ExpectTypeOf<Parameters>

Fonksiyon argümanlarını .parameters ile çıkararak değerleri üzerinde testler yapabilirsiniz. Parametreler bir dizi olarak döndürülür.

ts
import { expectTypeOf } from 'vitest';

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

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

TIP

Daha açıklayıcı bir doğrulama için .toBeCallableWith eşleştiricisini de kullanabilirsiniz.

parameter ​

  • Tip: (nth: number) => ExpectTypeOf

Belirli bir fonksiyon argümanını .parameter(number) çağrısı ile çıkararak üzerinde başka doğrulamalar gerçekleştirebilirsiniz.

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

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

constructorParameters ​

  • Tip: ExpectTypeOf<ConstructorParameters>

Yapıcı parametrelerini bir değer dizisi olarak çıkarabilir ve bu yöntemle üzerlerinde doğrulamalar gerçekleştirebilirsiniz.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

TIP

Daha açıklayıcı bir doğrulama için .toBeConstructibleWith eşleştiricisini de kullanabilirsiniz.

instance ​

  • Tip: ExpectTypeOf<ConstructableInstance>

Bu özellik, sağlanan sınıfın bir örneği üzerinde gerçekleştirilebilecek eşleştiricilere erişim sağlar.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

items ​

  • Tip: ExpectTypeOf<T>

Dizi öğe tipini .items ile alarak daha fazla doğrulama gerçekleştirebilirsiniz.

ts
import { expectTypeOf } from 'vitest';

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

resolves ​

  • Tip: ExpectTypeOf<ResolvedPromise>

Bu eşleştirici bir Promise'in çözümlenmiş değerini çıkarır, böylece üzerinde başka doğrulamalar gerçekleştirebilirsiniz.

ts
import { expectTypeOf } from 'vitest';

async function asyncFunc() {
  return 123;
}

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

WARNING

Promise olmayan bir tür üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

guards ​

  • Tip: ExpectTypeOf<Guard>

Bu eşleştirici guard değerini (örn. v is number) çıkarır, böylece üzerinde doğrulamalar gerçekleştirebilirsiniz.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Değer bir guard fonksiyonu değilse never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

asserts ​

  • Tip: ExpectTypeOf<Assert>

Bu eşleştirici assert değerini (örn. assert v is number) çıkarır, böylece üzerinde doğrulamalar gerçekleştirebilirsiniz.

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

Değer bir assert fonksiyonu değilse never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

toBeAny ​

  • Tip: () => void

Bu eşleştirici ile sağlanan tipin any olup olmadığını kontrol edebilirsiniz. Tip çok spesifikse, test başarısız olacaktır.

ts
import { expectTypeOf } from 'vitest';

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

toBeUnknown ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin unknown olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeNever ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin never olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeFunction ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin bir function olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeObject ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin bir object olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeArray ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin Array<T> olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeString ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin bir string olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeBoolean ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin boolean olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeVoid ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin void olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeSymbol ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin bir symbol olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeNull ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin null olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeUndefined ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin undefined olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeNullable ​

  • Tip: () => void

Bu eşleştirici, sağlanan tipin null veya undefined içerebilip içermediğini kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeCallableWith ​

  • Tip: () => void

Bu eşleştirici, sağlanan fonksiyonu verilen parametrelerle çağırabileceğinizi doğrular.

ts
import { expectTypeOf } from 'vitest';

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

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

toBeConstructibleWith ​

  • Tip: () => void

Bu eşleştirici, bir dizi yapıcı parametre ile yeni bir instance oluşturabileceğinizi doğrular.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon olmayan bir tip üzerinde kullanılırsa, never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

toHaveProperty ​

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

Bu eşleştirici, sağlanan nesnede bir özelliğin var olup olmadığını kontrol eder. Varsa, bu özelliğin tipi için aynı eşleştirici kümesini de döndürür, böylece doğrulamaları zincirleme olarak kullanabilirsiniz.

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
Önceki sayfaexpect
Sonraki sayfaassert

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team

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

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team