की सरणी के रूप में एक प्रकारस्क्रिप्ट इंटरफ़ेस की कुंजी प्राप्त करें मेरे पास उनके पास कौन से कॉलम हैं, इसके लिए लवफील्ड और उनके संबंधित इंटरफेस में बहुत सी टेबल हैं।
उदाहरण:
var IMyTable = ["id", "title", "createdAt", "isDeleted"];
मैं इंटरफ़ेस IMyTable
सीधे के आधार पर एक वस्तु/सरणी नहीं बना सकते:
स्ट्रिंग्स
export interface IMyTable {
id: number;
title: string;
createdAt: Date;
isDeleted: boolean;
}
मैं इस तरह एक सरणी में इस इंटरफ़ेस में प्रॉपर्टी के नाम करना चाहते हैं जो चाल चलाना चाहिए क्योंकि मुझे गतिशील रूप से टेबल के इंटरफ़ेस नाम मिलेंगे। इसलिए मुझे इंटरफ़ेस में इन गुणों पर पुन: प्रयास करने की आवश्यकता है और इसमें से एक सरणी प्राप्त करें।
मैं इस परिणाम को कैसे प्राप्त करूं।
आप की तरह मतलब है
एक अंतरफलक के रूप में यह प्रयोग करें यह: 'var abc: IMyTable = {}; Object.keys (abc) .forEach ((key) => {console.log (key)}); ' –
नहीं, क्योंकि उस ऑब्जेक्ट पर इसकी कोई कुंजी नहीं है। एक इंटरफ़ेस ऐसा कुछ है जो टाइपस्क्रिप्ट का उपयोग करता है लेकिन जावास्क्रिप्ट में वाष्पित होता है, इसलिए किसी भी "प्रतिबिंब" या "चौराहे" को सूचित करने के लिए कोई जानकारी नहीं छोड़ी जाती है। सभी जावास्क्रिप्ट जानता है कि एक खाली वस्तु अक्षरशः है। आपकी एकमात्र आशा है कि प्रतीक्षा करें (या [अनुरोध करें] (https: // github।कॉम/माइक्रोसॉफ्ट/टाइपस्क्रिप्ट/मुद्दे)) टाइपस्क्रिप्ट में स्रोत कोड में इंटरफ़ेस में सभी कुंजियों के साथ सरणी या ऑब्जेक्ट उत्पन्न करने का एक तरीका शामिल है। या, जैसा कि डेन डेफ कहता है, यदि आप कक्षा का उपयोग कर सकते हैं, तो आपके पास प्रत्येक उदाहरण में गुणों के रूप में परिभाषित कुंजी होगी .. – Jesper
आपको इस लाइन पर टाइपस्क्रिप्ट द्वारा भी एक त्रुटि मिलेगी: 'var abc: IMyTable = { } 'क्योंकि रिक्त ऑब्जेक्ट शाब्दिक उस इंटरफ़ेस के आकार के अनुरूप नहीं है। – Jesper