Skip to content
Vitest 1
Main Navigation KılavuzAPIYapılandırmaİleri
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

Kılavuz

Neden Vitest

Başlangıç

Özellikler

Çalışma Alanı

Komut Satırı Arayüzü

Test Filtreleme

Raporlayıcılar

Kapsam

Anlık Görüntü (Snapshot) Testleri

Sahtecilik (Mocking)

Türleri Test Etme

Vitest Arayüzü

Tarayıcı Modu

Kaynak İçi Test

Test Bağlamı

Test Ortamı

Eşleştiricileri Genişletme

IDE Tümleştirmeleri

Hata Ayıklama

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

Geçiş Rehberi

Yaygın Hatalar

Performansı İyileştirme

API

Test API Başvurusu

Sahte Fonksiyonlar

Vi

expect

expectTypeOf

assert

assertType

Yapılandırma

Vitest Yapılandırma Dosyasını Yönetme

Vitest'in Yapılandırılması

Bu sayfada

expectTypeOf ​

WARNING

Çalışma zamanında bu fonksiyon hiçbir şey yapmaz. Tip kontrolünü etkinleştirmek için --typecheck bayrağını geçirmeyi unutmayın.

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

not ​

  • Tip: ExpectTypeOf

.not özelliği ile tüm karşılaştırmaların olumsuzunu alabilirsiniz.

toEqualTypeOf ​

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

Bu eşleştirici, tiplerin birbirine tam olarak eşit olup olmadığını kontrol eder. İki nesnenin değerleri farklı olsa bile tipleri aynıysa bu eşleştirici başarısız olmaz. Ancak bir nesnede bir özellik eksikse hata verir.

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 genişletip genişletmediğini kontrol eder. toEqual'dan farklıdır ve expect'in toMatchObject()'ine daha çok benzer. Bu eşleştirici ile bir nesnenin bir tipe uyumlu olup olmadığını 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 yapmak için tipleri daraltmak üzere .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 belirtilen türü alır
  .toEqualTypeOf<{
    xs?: CSSProperties;
    sm?: CSSProperties;
    md?: CSSProperties;
  }>();

expectTypeOf(getResponsiveProp(cssProperties))
  .extract<unknown[]>() // union'dan bir dizi çıkarır
  .toEqualTypeOf<CSSProperties[]>();

WARNING

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

exclude ​

  • Tip: ExpectTypeOf<NonExcludedUnion>

Daha fazla test için union'dan tipleri kaldırmak için .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

Union'da 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 türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

parameters ​

  • Tip: ExpectTypeOf<Parameters>

Fonksiyon argümanlarına ait türleri, değerleri üzerinde iddialarda bulunmak için .parameters ile elde edebilirsiniz. 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 türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

TIP

Daha anlamlı bir iddia olarak .toBeCallableWith eşleştiricisini de kullanabilirsiniz.

parameter ​

  • Tip: (nth: number) => ExpectTypeOf

Üzerinde başka iddialarda bulunmak için .parameter(number) fonksiyonu ile belirli bir fonksiyon argümanının türünü elde edebilirsiniz.

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 türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

constructorParameters ​

  • Tip: ExpectTypeOf<ConstructorParameters>

Kurucu parametrelerinin türlerini bir dizi olarak elde edebilir ve bu yöntemle üzerlerinde iddialarda bulunabilirsiniz.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

TIP

Daha anlamlı bir iddia olarak .toBeConstructibleWith eşleştiricisini de kullanabilirsiniz.

instance ​

  • Tip: ExpectTypeOf<ConstructableInstance>

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

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

items ​

  • Tip: ExpectTypeOf<T>

Daha fazla iddiada bulunmak için .items ile dizi öğesi tipini alabilirsiniz.

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ğerinin türünü elde eder, böylece üzerinde başka iddialarda bulunabilirsiniz.

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 tipte 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 türünü (örneğin, v is number) elde eder, böylece üzerinde iddialarda bulunabilirsiniz.

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 türünü (örneğin, assert v is number) elde eder, böylece üzerinde iddialarda bulunabilirsiniz.

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 tipi olup olmadığını kontrol edebilirsiniz. Tip çok spesifikse, test başarısız olur.

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 tipi 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 bir never tipi 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 değerlerini alabilir olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

toBeCallableWith ​

  • Tip: () => void

Bu eşleştirici, sağlanan fonksiyonun belirtilen parametrelerle çağrılabilir olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

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

WARNING

Fonksiyon türünde olmayan bir değere uygulanırsa never döndürür, bu nedenle diğer eşleştiricilerle zincirleme yapılamaz.

toBeConstructibleWith ​

  • Tip: () => void

Bu eşleştirici, belirtilen kurucu parametreleri ile yeni bir örnek oluşturulabilir olup olmadığını kontrol eder.

ts
import { expectTypeOf } from 'vitest';

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

WARNING

Fonksiyon türünde olmayan bir değere uygulanı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 olup olmadığını kontrol eder. Eğer özellik varsa, bu özelliğin türü için de aynı eşleştirici kümesini döndürür, böylece iddiaları zincirleme şekilde 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) 2024 Mithril Contributors

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

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

Copyright (c) 2024 Mithril Contributors