TypeScript Academy · पाठ

as const के साथ const अभिकथन

ऑब्जेक्ट और ऐरे को गहराई तक readonly शाब्दिक प्रकारों में स्थिर करें।

पाठ 3, कुल 4 में से13 चरण

as const के साथ const अभिकथन, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

The as const Assertion

const assertion, जिसे as const लिखा जाता है, TypeScript को किसी मान के लिए सबसे विशिष्ट और गहराई तक readonly type का अनुमान लगाने के लिए कहता है। ऑब्जेक्ट की properties literal और immutable हो जाती हैं; arrays readonly tuples बन जाती हैं।

const point = { x: 10, y: 20 } as const;
// type: { readonly x: 10; readonly y: 20 }
console.log(point.x, point.y);

as const के बिना

इस assertion के बिना ऑब्जेक्ट की properties widen हो जाती हैं। { x: 10 } से x: number का अनुमान लगता है और इसमें बदलाव किया जा सकता है। पिछले दृश्य से इसकी तुलना करके देखें कि as const क्या बदलता है।

const a = { x: 10 };       // x: number, mutable
const b = { x: 10 } as const; // x: 10, readonly
a.x = 99; // allowed
console.log(a.x, b.x);

Properties को Literals पर स्थिर करना

as const हर string property को उसके literal type में बदल देता है। यह उन config objects के लिए अत्यंत उपयोगी है जिनकी कुंजियाँ और मान सटीक बने रहने चाहिए।

const config = {
  env: 'production',
  retries: 3
} as const;
// env: 'production', retries: 3
console.log(config.env, config.retries);

readonly से बदलाव रुकते हैं

क्योंकि as const properties को readonly बनाता है, compiler दोबारा मान देने से रोकता है। Type level पर मान immutable रहता है, जिससे वह अनजाने बदलावों से सुरक्षित रहता है।

const settings = { mode: 'dark' } as const;
console.log(settings.mode);
// settings.mode = 'light'; // Error: readonly property

Arrays पर const Assertions

किसी array पर लागू करने पर as const literal types का readonly tuple बनाता है। इसकी लंबाई निश्चित रहती है और हर element अपना सटीक मान बनाए रखता है।

const colors = ['red', 'green', 'blue'] as const;
// type: readonly ['red', 'green', 'blue']
console.log(colors[0], colors.length);

Readonly Arrays में बदलाव नहीं

Readonly tuple push जैसी बदलाव करने वाली methods या index assignment को अस्वीकार करता है। डेटा सुरक्षित हो जाता है, जो निश्चित lookup tables के लिए ठीक वही है जिसकी आपको आवश्यकता होती है।

const days = ['Mon', 'Tue', 'Wed'] as const;
console.log(days.join(', '));
// days.push('Thu'); // Error: push does not exist on readonly tuple

typeof arr[number] से Union निकालना

एक शक्तिशाली pattern: readonly array लें और typeof arr[number] का उपयोग करके उसके elements के types से एक union निकालें। मानों को एक बार लिखें और बिना अतिरिक्त प्रयास के literal union प्राप्त करें।

const ROLES = ['admin', 'editor', 'viewer'] as const;
type Role = typeof ROLES[number];
// 'admin' | 'editor' | 'viewer'
const r: Role = 'editor';
console.log(r);

सत्य का एकमात्र स्रोत

इससे आपका runtime array और type एक-दूसरे के साथ synchronized रहते हैं। Array में कोई मान जोड़ें और union अपने-आप update हो जाता है — बनाए रखने के लिए दोहराई हुई lists की आवश्यकता नहीं रहती।

const SIZES = ['S', 'M', 'L', 'XL'] as const;
type Size = typeof SIZES[number];

function pick(s: Size): void {
  console.log('Picked', s);
}
pick('M');

Tuples पर const Assertions

जिन tuples में elements के types अलग-अलग होते हैं, उनमें as const सटीक types और क्रम दोनों को बनाए रखता है और एक सटीक readonly tuple बनाता है।

const pair = [1, 'one'] as const;
// type: readonly [1, 'one']
console.log(pair[0], pair[1]);

Deep Readonly व्यवहार

as const का प्रभाव गहराई तक लागू होता है। Nested objects और arrays भी literal types के साथ readonly बन जाते हैं, सबसे अंदरूनी स्तर तक।

const data = {
  name: 'app',
  tags: ['a', 'b']
} as const;
// tags is readonly ['a', 'b']
console.log(data.name, data.tags[1]);

Enums के लिए Const Assertions

Const object और उससे निकाला गया union, enum का हल्का विकल्प है। आपको runtime पर literal values और एक सटीक type मिलता है, बिना कोई अतिरिक्त emitted code बनाए।

const Status = {
  Idle: 'idle',
  Active: 'active'
} as const;
type Status = typeof Status[keyof typeof Status];
const s: Status = Status.Active;
console.log(s);

त्वरित जाँच

const assertions की अपनी समझ जाँचें।

पुनरावलोकन: as const

आपने सीखा कि as const:

  • सबसे विशिष्ट और गहराई तक readonly literal type का अनुमान लगाता है।
  • ऑब्जेक्ट properties को literal readonly fields में बदल देता है।
  • arrays को literals के readonly tuples में बदल देता है।
  • typeof arr[number] के ज़रिए unions निकालने में सक्षम बनाता है, जिससे values और types synchronized रहते हैं।

अब हम literals को मिलाकर अभिव्यंजक unions बनाएँगे।

const LEVELS = ['low', 'mid', 'high'] as const;
type Level = typeof LEVELS[number];
const chosen: Level = 'mid';
console.log(chosen);
शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “as const के साथ const अभिकथन” पाठ निःशुल्क है?

हाँ—“as const के साथ const अभिकथन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“as const के साथ const अभिकथन” में मैं क्या सीखूँगा?

ऑब्जेक्ट और ऐरे को गहराई तक readonly शाब्दिक प्रकारों में स्थिर करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“as const के साथ const अभिकथन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. स्ट्रिंग और संख्यात्मक शाब्दिक प्रकार
  2. बूलियन शाब्दिक और शाब्दिक अनुमान
  3. as const के साथ const अभिकथन
  4. शाब्दिक प्रकारों को यूनियन में मिलाना
← TypeScript Academy पर वापस जाएँ