मैं फ़्लो का उपयोग करने के लिए मौजूदा कोडबेस माइग्रेट करने का प्रयास कर रहा हूं। चूंकि इस परियोजना के प्रवाह के बिना शुरू हुआ, मैं enums और इस तरह के लिए एक सुंदर ठेठ जेएस पैटर्न का उपयोग कर रहा हूँ।प्रवाह प्रकार की जांच के साथ Enums का उपयोग/परिभाषित कैसे करें?
यहाँ कुछ परिभाषाओं मैं
export const LOAN_STATUS = {
PENDING: 'pending',
CURRENT: 'current',
DUE: 'due',
OVERDUE: 'overdue',
PENDING_PAYMENT: 'pending_payment',
CHARGED_OFF: 'charged_off',
VOIDED: 'voided',
DISPUTED: 'disputed',
REFUNDED: 'refunded',
SETTLED: 'settled',
}
export const ACTIVE_LOAN_STATUS = [
LOAN_STATUS.OVERDUE,
LOAN_STATUS.CURRENT,
LOAN_STATUS.DUE,
LOAN_STATUS.PENDING_PAYMENT,
]
जब तक मैं इस फ़ाइल को आयात प्रवाह ठीक काम करता है करना चाहते हैं और यह मैं प्रकार एनोटेशन जोड़ने की जरूरत है कहते हैं। यह अजीब लगता है - मुझे उन वस्तुओं को एनोटेट करना क्यों चाहिए जो पूरी तरह स्थैतिक और आसानी से अनुमानित हैं?
क्या कोई तरीका है जो इसके प्रकार को "स्थैतिक" या "शाब्दिक" के रूप में परिभाषित करता है?
तो मैं सोच रहा हूं कि मैं इस पर एनोटेशन जोड़ने जा रहा हूं। मेरा पहला विचार सिर्फ {[key: string]: string}
और Array<string>
है। प्रवाह काम करता है, लेकिन मुझे लगता है कि इन प्रकार की परिभाषा पूरी तरह से बेकार है। तो फिर मैं इस दूसरे तरीके का प्रयास करें:
type LoanStatusValues =
'pending' |
'current' |
'due' |
'overdue' |
'pending_payment' |
'charged_off' |
'voided' |
'disputed' |
'refunded' |
'settled'
type LoanStatusKeys =
'PENDING' |
'CURRENT' |
'DUE' |
'OVERDUE' |
'PENDING_PAYMENT' |
'CHARGED_OFF' |
'VOIDED' |
'DISPUTED' |
'REFUNDED' |
'SETTLED'
type ActiveLoanStatus =
"current" |
"due" |
"overdue" |
"pending_payment"
और मैं प्रकार एनोटेशन {[key: LoanStatusKeys]: LoanStatusValues}
और Array<ActiveLoanStatus>
का उपयोग करें। लेकिन इन टिप्पणियों को भी इस तथ्य को ढीला कर दिया कि यह स्थिर है!
यह इतना अजीब लगता है कि मुझे यह बहुत डुप्लिकेट कोड लिखना है। और फिर यदि मैं केवल फ्लो में कनवर्ट करना चाहता हूं तो मैं वास्तव में जेएस में प्रकारों का उपयोग नहीं कर सकता। उदाहरण के लिए मैं यह कर सकता है:
type ActiveLoanStatus =
"current" |
"due" |
"overdue" |
"pending_payment"
if (loan.status isTypeOf ActiveLoanStatus) {
}
तो मैं इन स्थिर enums का उपयोग करना चाहिए:
if (defs.ACTIVE_LOAN_STATUS.indexOf(loan.status) !== -1) {
}
अब अगर मैं प्रवाह प्रकार उपयोग करना चाहते हैं, मैं इस तरह कुछ नहीं कर सकते? मुझे यह गलत करना होगा!
प्रासंगिक गिथब मुद्दा: https: // github।कॉम/फेसबुक/प्रवाह/मुद्दे/627 – aug