मेरे पास सभी अलग-अलग डेटा प्रकारों के लिए इंटरफेस हैं और वे 'किसी भी' का उपयोग किए बिना खोज प्रकार हैं। क्या उन इंटरफेस के साथ टाइप चेकिंग का उपयोग करने का कोई तरीका है लेकिन यह केवल उन इंटरफेस के गुणों के अस्तित्व की तुलना गुण मानों की जांच किए बिना करता है?

0
Magic Lasso 17 जिंदा 2021, 21:20
// eslint-disable-next-line के बारे में क्या?
 – 
k-wasilewski
17 जिंदा 2021, 21:24
मैं प्रकारों की तुलना नहीं करना चाहता, मैं यह सुनिश्चित करना चाहता हूं कि ऑब्जेक्ट ए में उन गुणों के प्रकारों की जांच किए बिना और 'किसी' का उपयोग किए बिना इंटरफ़ेस के समान गुण हों क्योंकि मेरे पास अन्य ऑब्जेक्ट्स हैं जिन्हें उन इंटरफेस से बिल्कुल मेल खाना चाहिए हमेशा की तरह .
 – 
Magic Lasso
17 जिंदा 2021, 21:32

1 उत्तर

सबसे बढ़िया उत्तर

आप एक मैप्ड टाइप बना सकते हैं जो आपको अनुमति देगा अपने इंटरफेस को स्पष्ट प्रकारों के साथ लेने के लिए, और any पर सेट सभी समान गुणों के साथ नए प्रकार का उत्पादन करें। उदाहरण के लिए:

interface StrongType {
  foo: string,
  bar: number
}

type PropertiesExist<T> = {
  [P in keyof T]: any;
}

type LooseType = PropertiesExist<StrongType>


// No error; it has all the properties, even though they're different types
const thing: LooseType = {
  foo: true,
  bar: () => {}
}

// Error: it's missing the bar property
const thing2: LooseType = {
  foo: 123,
}

खेल का मैदान लिंक

2
Nicholas Tower 17 जिंदा 2021, 21:35
यह वही है जिसे मैं देख रहा था। शुक्रिया!
 – 
Magic Lasso
17 जिंदा 2021, 21:38