निम्नलिखित कोड टाइपप्रति में कानूनी है:क्या टाइपस्क्रिप्ट में केवल बूलियन स्वीकार करने के लिए "if" को मजबूर करने का कोई तरीका है?
let asyncCondition = async(): Promise<boolean> => // .. calculate & return a boolean
if(asyncCondition()){ // forgot to await. condition is always true
// .. do stuff
}
asyncCondition()
के बाद से रिटर्न एक सामान्य नहीं-अशक्त Promise
, if
ब्लॉक में कोड हमेशा मार डाला जाएगा। यह जावास्क्रिप्ट व्यवहार है और यह समझ में आता है कि टाइपस्क्रिप्ट शिकायत नहीं करता है।
लेकिन उपरोक्त परिदृश्य में, क्या मैं वास्तव में मतलब है:
let asyncCondition = async(): Promise<boolean> => // .. calculate & return a boolean
if(await asyncCondition()){ // condition is asyncCondition()
// .. do stuff
}
वहाँ टाइपप्रति टाइप करने के लिए मेरे लिए त्रुटियों के इस प्रकार की जाँच जाने के लिए कोई तरीका है?
शायद यह आपकी स्थिति में बूलियन के खिलाफ जांच करने की आदत है, उदाहरण के लिए: अगर (asyncCondition() === सच है { –