यह निरूपित करने के लिए संभव है objके रूप में any, लेकिन यह टाइपप्रति का उपयोग कर का पूरा उद्देश्य धरा। obj = {}तात्पर्य objएक है Object। यह छाप लगाई जा रही anyकोई मतलब नहीं है। इच्छित स्थिरता इस प्रकार एक अंतरफलक में परिभाषित किया जा सकता है पूरा करने के लिए।
interface LooseObject {
[key: string]: any
}
var obj: LooseObject = {};
या यह कॉम्पैक्ट बनाने के लिए:
var obj: {[k: string]: any} = {};
LooseObjectकुंजी के रूप में किसी भी तार के साथ खेतों स्वीकार करते हैं और कर सकते हैं anyमूल्य के रूप में टाइप करें।
obj.prop = "value";
obj.prop2 = 88;
इस समाधान का वास्तविक लालित्य है कि आप इंटरफ़ेस में typesafe क्षेत्रों को शामिल कर सकते है।
interface MyType {
typesafeProp1?: number,
requiredProp1: string,
[key: string]: any
}
var obj: MyType ;
obj = { requiredProp1: "foo"}; // valid
obj = {} // error. 'requiredProp1' is missing
obj.typesafeProp1 = "bar" // error. typesafeProp1 should be a number
obj.prop = "value";
obj.prop2 = 88;