मैं निम्नलिखित निरंतर स्ट्रिंग है कहते हैं:प्रवाह प्रकार, और निर्भर प्रकार
export default const FOO = 'FOO'
कहो मैं बहुत की तरह एक प्रवाह एनोटेट फ़ाइल में इस आयात:
import FOO from '../consts/Foo'
मेरे पास एक समारोह है:
const example = (foo : string) : {| type: FOO, foo: string |} => {
return {type: FOO, foo: foo}
}
इस के साथ typecheck नहीं करता है:
6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
^^^^^^^^^^^^^^ string. Ineligible value used in/as type annotation (did you forget 'typeof'?)
6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
^^^^^^^^^^^^^^ FOO
तो मेरी प्रश्न हैं:
1) यह, प्रवाह प्रकार में स्थिरांक उपयोग करना संभव है मैं इस व्यवहार को कैसे पुन: पेश कर सकते हैं?
2) क्या प्रवाह में निर्भर प्रकार करना संभव है? तो उदाहरण के लिए, क्या मैं प्रकारों के माध्यम से एन्कोड कर सकता हूं, कि लौटाई गई स्ट्रिंग एक ही स्ट्रिंग होनी चाहिए जो example
फ़ंक्शन में पारित हो?
संपादित करें: भाग 2 के लिए स्पष्टीकरण: यह संकेत मिलता है कि foo
पैरामीटर example
समारोह में पारित कर दिया वास्तव में वापसी वस्तु में foo
कुंजी पर स्ट्रिंग के रूप में एक ही स्ट्रिंग है किसी तरह से करना संभव है? या यह कहने के लिए कि इनपुट और आउटपुट में एक ही लंबाई है (एक शिफ्ट सिफर फ़ंक्शन कहने के लिए)। या कहें कि एक ही वर्ण का क्रमपरिवर्तन शामिल है? (एक शफल के लिए)।
https://en.wikipedia.org/wiki/Dependent_type
यदि आप 'FOO'' टाइप करना चाहते हैं तो 'FOO'' तो आपको इसे घोषित करने की आवश्यकता होगी, अन्यथा यह केवल एक स्ट्रिंग है। ऑब्जेक्ट्स के लिए, आप फिर टाइप करेंगे जैसे टाइप टाइप: टाइपफ फूड '। मुझे पूरा यकीन नहीं है कि आप अपने 2 में क्या पूछ रहे हैं) हालांकि। फिर आप उसी स्ट्रिंग मान वाले दो गुणों वाले ऑब्जेक्ट के साथ समाप्त हो जाएंगे। – loganfsmyth