में यूनियन प्रकारों की सरणी के लिए ऑब्जेक्ट्स की सरणी असाइन नहीं कर सकता है, मैं फ्लो सीख रहा हूं और इसलिए मैं जावास्क्रिप्ट और फ्लो के साथ एक छोटी शौक परियोजना पर काम कर रहा हूं। मेरे पास Foo
और एक अलग वर्ग Bar
है जो मैं Foo
ऑब्जेक्ट्स को कन्स्ट्रक्टर में एक विकल्प के रूप में लेना चाहता हूं। हालांकि, मैं भी इस तरह के प्रत्येक ऑब्जेक्ट के लिए कुछ अन्य डेटा भेजने में सक्षम होना चाहता हूं, और इसलिए मैं एक सरणी रखना चाहता हूं जहां प्रत्येक तत्व या तो एक सादा Foo
ऑब्जेक्ट है, या Foo
ऑब्जेक्ट या एब्जेक्ट में लिपटे ऑब्जेक्ट है।फ़्लो
हालांकि, जब मैंने इसके लिए कोड लिखने की कोशिश की, तो मुझे कुछ अजीब त्रुटियां मिलीं जिन्हें मैं समझ नहीं पा रहा हूं। जहां तक मैं कह सकता हूं, ऐसा लगता है कि एक प्रकार का संघर्ष है क्योंकि Foo
संघ के प्रकारों के सभी के साथ संगत नहीं है, लेकिन जहां तक मैं समझता हूं कि इसे केवल उनमें से कम से कम एक के साथ संगत होना चाहिए
// @flow
class Foo { }
interface BarOptions {
foos: (Foo | [ Foo ] | { foo: Foo })[]; // line 6
}
class Bar {
constructor(options?: BarOptions) { }
}
const foo: Foo = new Foo();
const bar = new Bar({
foos: [ foo ], // line 16
});
मैं निम्नलिखित त्रुटियाँ मिलती है::
Line 6:
tuple type: This type is incompatible with Foo
object type: This type is incompatible with Foo
Line 16:
tuple type: This type is incompatible with Foo
object type: This type is incompatible with Foo
है वहाँ ...
यहाँ कम से कम कोड मैं सही त्रुटियों मुझे मिल पुन: पेश करने की जरूरत है (link to tryflow.org example) है इन त्रुटियों के लिए एक सहज (या अनजान) कारण?
आप इस काम करेगा व्याख्या कर सकते हैं? (मेरा सवाल यह नहीं है कि इसे कैसे ठीक किया जाए, यह समझने की कोशिश कर रहा है कि यह पहली जगह क्यों है) – Frxstrem
मैं यह देखने में असफल रहा कि दोनों अलग कैसे हैं; जैसा कि मैंने इसे समझा है, दोनों मामलों में 'foo' को उसी प्रकार (' Foo') के साथ घोषित किया जाएगा, केवल अंतर यह है कि आपकी पहली पंक्ति में प्रकार स्पष्ट है जबकि दूसरे में यह स्पष्ट है। जब तक मुझे बहुत गलत समझा जाता है कि प्रवाह प्रकार कैसे काम करते हैं, मैं नहीं देखता कि यह अलग तरीके से कैसे व्यवहार करेगा (हालांकि ऐसा लगता है कि वे ऐसा करते हैं)। – Frxstrem
क्या यह समस्या इस से संबंधित हो सकती है? https://github.com/facebook/flow/issues/1569 –