मैं एक कस्टम त्रुटि बनाने की कोशिश कर रहा हूं जो Error को सही प्रवाह प्रकारों के साथ विस्तारित करती है

मैं जो करने की कोशिश कर रहा हूं उसका उदाहरण:

export class ValidationError extends Error {
  /**
   * @constructor
   * @param {string} message - Error message
   * @param {object} inputData - Data that was validated
   * @param {object} invalidProperties - Specific properties of `inputData` that are invalid
   * @param {object[]} reasons - Reason the `inputData` is invalid
   */
  constructor(message, inputData, invalidProperties, reasons) {
    super()
    this.id = ''
    this.name = 'ValidationError'
    this.message = message
    this.inputData = inputData
    this.invalidProperties = invalidProperties
    this.reasons = reasons
  }
}

प्रकारों के साथ:

  /**
   * @constructor
   * @param {string} message - Error message
   * @param {object} inputData - Data that was validated
   * @param {object} invalidProperties - Specific properties of `inputData` that are invalid
   * @param {object[]} reasons - Reason the `inputData` is invalid
   */
  constructor(
    message: string,
    inputData: {...},
    invalidProperties: {...},
    reasons: Array<{...}>
  ) {
    super()
    this.id = ''
    this.name = 'ValidationError'
    this.message = message
    this.inputData = inputData
    this.invalidProperties = invalidProperties
    this.reasons = reasons
  }
}

(कोशिश प्रवाह में: https://flow.org/try/#0KYDwDg9gTgLgBAYwDYEMDOa4DUVIJYAmKMeEAdgKJRTRygzBkGZU1RwDeAUHHAPQAqAT14C4AAQTk0MKAFcEMaCLhjxYFFBQBbTjKh4yAcwC+cbcAwojwOAFo4rWhas2VajVt0cIAIwBWwIpmhmByMAAixCj2cFEwMTAAFsRwAO7ocABuuITEwATuEp46nH6BwXCGOfgEAAo0YMCweJaxAMpNCHgAZngIcGCNzSRtED1wAAah4fEok3DJqZq21bmFvKrFmqU+AUEwANoAumZQwOjSsQBKF2jki0m202RhkdELeJhrte58IlIyPoFEooAAKFTmSxoazAABccH0hiMABpITN3gkERwAHR4kxozZVMg1QgNCBNFqWbF4nEEyHnS5AhEA QWoKAAngAeXH4gB8IgAlJxIWg5JSwYLIckvjjCHAALxwADkyulSVlZB0tiVypwtWIpEo1GgaqJMrQOJcMJsiqhrmA6tlGLmdpd0Sdlp+ZOGVMwSu99PuQLMXEknpx

लेकिन प्रवाह अतिरिक्त गुणों (id, inputData, आदि) के बारे में शिकायत करता है। मैंने इंटरफेस के साथ काम करने की कोशिश की, लेकिन प्रवाह उन वर्गों को पसंद नहीं करता है जो implement और extend भी हैं।

क्या किसी ने इसे सफलतापूर्वक किया है?

अग्रिम धन्यवाद,
सज्जन

0
danwoods 15 नवम्बर 2019, 02:07

1 उत्तर

सबसे बढ़िया उत्तर

आपको यह घोषित करने की आवश्यकता है कि आपके द्वारा असाइन किए जाने से पहले वे संपत्तियां मौजूद हैं, उदा।

export class ValidationError extends Error {
  id: string;
  inputData: { ... };
  invalidProperties: { ... };
  reasons: Array<{ ... }>;

  // ...
1
loganfsmyth 15 नवम्बर 2019, 04:30