interface
एस और type
एस समान हैं, और अंतर ज्यादातर ऐतिहासिक है जो मेरा मानना है। property variance को लागू करने के हालिया परिवर्तनों ने interface
के व्यवहार के साथ type
का व्यवहार भी लाया। मेरा मानना है कि लक्ष्य अंततः उन्हें समान बनाना है और संभवतः interface
को भी हटा देना है।
अभी भी सूक्ष्म अंतर हो सकता है लेकिन अधिकांश उपयोगों के लिए मुझे नहीं लगता कि आपको एक अंतर दिखाई देगा। नहीं एक type
-
एक प्रमुख अंतर यह है कि आप implements
(जैसे class Foo implements Bar {...}
) उपयोग करना चाहते हैं तो Bar
एक interface
होना चाहिए है। हालांकि यह ध्यान देने योग्य है कि एक इंटरफेस को कार्यान्वित करने के रूप में कक्षा को चिह्नित करना अनिवार्य नहीं है। फ्लो संरचनात्मक उपप्रकार लागू करता है ताकि आपके पास कक्षा का उदाहरण हो, तो आप इसे किसी ऐसे इंटरफ़ेस को पास कर सकते हैं जो संगत type
की अपेक्षा करता है, यह स्पष्ट रूप से यह इंगित करता है कि कक्षा किसी विशेष इंटरफ़ेस को लागू करती है।
स्रोत
2017-03-29 16:15:19