टेस्ट और मॉक की टाइपिंग; expectTypeOf
स्थिर जाँच के लिए expectTypeOf और Vitest/Jest में टाइप-सुरक्षित मॉक का उपयोग करके नाज़ुक tests से बचें।
टेस्ट और मॉक की टाइपिंग; expectTypeOf, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: expectTypeOf से प्रकारों की पुष्टि करना और प्रकार-सुरक्षित मॉक लिखना, ताकि पुनर्गठन से परीक्षणों में चुपचाप खराबी न आए।
expectTypeOf की मूल बातें
expectTypeOf Vitest में कंपाइल के समय प्रकारों की पुष्टि करता है; रनटाइम पर इसकी कोई लागत नहीं होती, लेकिन यह असंगतियों को जल्दी पकड़ लेता है।
// Vitest provides expectTypeOf
import { expectTypeOf } from "vitest";
function fullName(first: string, last: string) {
return `${first} ${last}`
}
// static checks (compile-time)
expectTypeOf(fullName).toBeFunction()
expectTypeOf(fullName("Ada","Lovelace")).toBeString()उन्नत पुष्टियाँ
उपयोगी पैटर्न: Awaited<ReturnType<...>> से रिटर्न प्रकारों को हल करना तथा लिटरल और यूनियन की तुलना करना।
import { expectTypeOf } from "vitest";
interface User { id: number; name: string }
function getUser(): Promise<User> { return Promise.resolve({ id:1, name:"A" }) }
// unwrap Promise
type Resolved = Awaited<ReturnType<typeof getUser>>
expectTypeOf<Resolved>().toMatchTypeOf<User>()
// literal + union
const status = "ok" as const
expectTypeOf(status).toEqualTypeOf<"ok">()Vitest मॉक
vi.fn के लिए हस्ताक्षर देकर मॉक का प्रकार सही ढंग से निर्धारित करें; गलत तर्क कंपाइलेशन के दौरान पकड़ लिए जाएँगे।
import { vi, describe, it, expect } from "vitest";
function fetchUser(id: number): Promise<string> {
return Promise.resolve(`user-${id}`)
}
// typed mock
const mockFetch: ReturnType<typeof vi.fn<[(id: number), Promise<string>]>> = vi.fn(async (id: number) => `user-${id}`)
it("uses typed mock", async () => {
const name = await mockFetch(5)
expect(name).toBe("user-5")
// mockFetch("x") // TS error: id must be number
})Jest मॉक
Jest में jest.fn<Signature>(); लिखकर कॉल हस्ताक्षर लागू करें और MockedFunction से मॉक के प्रकार को स्पष्ट करें।
import { jest } from "@jest/globals";
function times(a: number, b: number) { return a * b }
const mul = jest.fn<(a:number,b:number)=>number>((a,b)=>a*b)
mul(2,3) // ok
// mul("2",3) // TS error
// MockedFunction utility
type MulMock = jest.MockedFunction<typeof mul>
const _check: MulMock = mulसुझाव
मानों के सत्यापन (रनटाइम) को प्रकारों के सत्यापन (कंपाइल के समय) से अलग रखें; ये अलग-अलग स्तर हैं।
// value assertions
import { expect } from "vitest";
expect(2 + 3).toBe(5)
// type assertions (compile-time)
import { expectTypeOf } from "vitest";
expectTypeOf(2 + 3).toBeNumber()
// don't confuse with runtime validators like zodप्रश्न
त्वरित जाँच: परीक्षण चलने के दौरान expectTypeOf क्या जाँचता है?
पुनरावलोकन
पुनरावलोकन: expectTypeOf — कंपाइल के समय प्रकार की गारंटी; vi.fn/jest.fn — हस्ताक्षर वाले प्रकार-सुरक्षित मॉक।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “टेस्ट और मॉक की टाइपिंग; expectTypeOf” पाठ निःशुल्क है?
हाँ—“टेस्ट और मॉक की टाइपिंग; expectTypeOf” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“टेस्ट और मॉक की टाइपिंग; expectTypeOf” में मैं क्या सीखूँगा?
स्थिर जाँच के लिए expectTypeOf और Vitest/Jest में टाइप-सुरक्षित मॉक का उपयोग करके नाज़ुक tests से बचें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“टेस्ट और मॉक की टाइपिंग; expectTypeOf” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- TS के लिए Vitest/Jest सेटअप
- टेस्ट और मॉक की टाइपिंग; expectTypeOf
- E2E टाइपिंग की झलक (Playwright/Cypress)