एक इंडेक्स स्वाक्षर गुणहरूको प्रकार वर्णन गर्दछ जब तपाइँ तिनीहरूको नाम अगावै जान्नुहुन्न — शब्दकोश/मानचित्र मोडेल गर्दछ जहाँ कुञ्जीहरू गतिशील हुन्छन्।
{
[: ]: ;
}
: = { : , : };
scores. = ;
scores.;
scores.;
एक इंडेक्स स्वाक्षर गुणहरूको प्रकार वर्णन गर्दछ जब तपाइँ तिनीहरूको नाम अगावै जान्नुहुन्न — शब्दकोश/मानचित्र मोडेल गर्दछ जहाँ कुञ्जीहरू गतिशील हुन्छन्।
{
[: ]: ;
}
: = { : , : };
scores. = ;
scores.;
scores.;
सामान्य इंडेक्स स्वाक्षरको साथ, कम्पाइलर हरेक कुञ्जी अवस्थित छ भन्ने मान्यता गर्दछ, त्यसैले scores.typo लाई number को रूपमा टाइप गरिन्छ यद्यपि यो वास्तवमा रनटाइममा undefined हो। noUncheckedIndexedAccess सक्षम गर्नु यसलाई ठीक गर्दछ:
// with noUncheckedIndexedAccess: true
scores.math; // number | undefined → forces you to handle the missing case
interface Config {
name: string; // known property
[key: string]: string | number; // plus arbitrary extra keys
}
सबै नामकृत गुणहरू इंडेक्स स्वाक्षरको मूल्य प्रकारमा नियोग गर्न सकिनु पर्दछ।
type Scores = Record<string, number>; // same as the index signature
type Roles = Record<"admin" | "user", boolean>; // constrained keys
Record मुहावरे को छोटरूप हो र सीमित कुञ्जी संघ समर्थन गर्दछ, जुन साधारण [key: string] सक्दैन।
इंडेक्स स्वाक्षर साँच्चै गतिशील-कुञ्जी वस्तु मोडेल गर्दछन् (लुकअप टेबल, क्यास, पार्स गरिएको JSON मानचित्र)।
सुरक्षा सावधानी (noUncheckedIndexedAccess) जान्नुहोस् र पाठ्यक्षमताको लागि Record<K, V> लाई प्राथमिकता दिनुहोस् — र जब कुञ्जीहरू साँच्चै खुला हुन् र तपाइँ वास्तविक पुनरावृत्ति/आकार शब्दार्थ चान हुनुहुन्छ भने Map लाई प्राथमिकता दिनुहोस्।