मेरे पास इस तरह संरचित एक प्रतिक्रिया एचओसी है:

import React from 'react';
import { CookiesConsumer } from './index';

const withCookies = (WrappedComponent: any) => (props: any) => (
  <CookiesConsumer>
    {cookies => (
      <WrappedComponent
        {...props}
        cookiesContext={cookies}
      />
    )}
  </CookiesConsumer>
);

export default withCookies;

मुझे इस पर 2 टाइपस्क्रिप्ट एस्लिंट चेतावनियां मिलती हैं जिन्हें मैं ठीक करना चाहता हूं। दोनों any प्रकार की घोषणाओं पर:

Unexpected any. Specify a different type.eslint(@typescript-eslint/no-explicit-any)

props प्रकार के लिए, मुझे नहीं पता कि प्रॉपर ऑब्जेक्ट में कौन से गुण या मूल्य प्रकार हो सकते हैं, इसलिए मैं इसे any से बेहतर कैसे परिभाषित कर सकता हूं?

WrappedComponent प्रकार के लिए मैंने ReactNode या ReactElement जैसे प्रकारों को आजमाया है, लेकिन यह : JSX element type 'WrappedComponent' does not have any construct or call signatures. के वास्तविक उपयोग पर एक नई त्रुटि उत्पन्न करता है।

0
Coop 12 जून 2019, 14:28

1 उत्तर

सबसे बढ़िया उत्तर
import React from 'react';
import { CookiesConsumer } from './index';

interface withCookiesProps {
    someProp: boolean;
  }


const withCookies = <P extends object>(WrappedComponent: React.ComponentType<P>) => (props: P & withCookiesProps) => (
  <CookiesConsumer>
    {cookies => (
      <WrappedComponent
        {...props}
        cookiesContext={cookies}
      />
    )}
  </CookiesConsumer>
);

export default withCookies;

संदर्भ

7
Lidor Avitan 12 जून 2019, 11:55