Skip to content
← Back to rules

vitest/prefer-expect-type-of スタイル

An auto-fix is available for this rule.

何をするか

expect(typeof ...) の代わりに expectTypeOf を使用することを強制する

なぜ悪いのか

Vitest は expect(typeof ...) を使うよりも、より表現力があり型安全な型のテスト方法を提供している

このルールに違反する不正なコードの例:

js
test('型チェック', () => {
  expect(typeof 'hello').toBe('string')
  expect(typeof 42).toBe('number')
  expect(typeof true).toBe('boolean')
  expect(typeof {}).toBe('object')
  expect(typeof () => {}).toBe('function')
  expect(typeof Symbol()).toBe('symbol')
  expect(typeof 123n).toBe('bigint')
  expect(typeof undefined).toBe('undefined')
})

このルールに準拠する正しいコードの例:

js
test("型チェック", () => {
  expectTypeOf("hello").toBeString();
  expectTypeOf(42).toBeNumber();
  expectTypeOf(true).toBeBoolean();
  expectTypeOf({}).toBeObject();
  expectTypeOf(() => {}).toBeFunction();
  expectTypeOf(Symbol()).toBeSymbol();
  expectTypeOf(123n).toBeBigInt();
  expectTypeOf(undefined).toBeUndefined();
});

使用方法

このルールを構成ファイルまたは CLI で有効化するには、次のように使用できます:

json
{
  "plugins": ["vitest"],
  "rules": {
    "vitest/prefer-expect-type-of": "error"
  }
}
bash
oxlint --deny vitest/prefer-expect-type-of --vitest-plugin

参照