एक इंडेक्स सिग्नेचर गुणधर्मांचा प्रकार वर्णन करते जेव्हा आपल्याला त्यांची नावे आधীपासून माहित नसतात — शब्दकोश/नकाशे मॉडेल करते जेथे की हे गतिशील असतात।
{
[: ]: ;
}
: = { : , : };
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 पसंत करा.