reactjs - importering av ReactNode i TypeScript-modul mislykkes


Jeg har en create-react-app som har en types-mappe i src med følgende:

testapp-komponenter.d.ts

import { ReactNode } from "react";

interface Option {
  label: ReactNode;
  value: string;
  [key: string]: ReactNode;
}

declare module "@testApp/components";

Men når jeg bruker det i komponenten min slik...

// @testApp/components is an internal library I've installed. OptionSelector is a custom react component.
import { OptionSelector } from @testApp/components; 

... other React code ...

const [options, setOptions] = useState<Option[]>([]);

Den gir meg følgende feil:

  1. TS7016: Kunne ikke finne en deklarasjonsfil for modul '@testApp/components under import { OptionSelector } ...

  2. TS2304: Kan ikke finne navnet Option under useState

Hvis jeg fjerner import { ReactNode } ... og endrer ReactNode-referansene til any, forsvinner begge feilene...

Å endre filnavnet til .d.tsx løser ikke problemet.

Jeg har også prøvd dette:

declare module "@testApp/components" {
    export interface Option {
       label: any;
       value: string;
       [key: string]: any;
    }
};

Som gir samme feil for useState, men gir meg en ny feil for import { OptionSelector } ...:

  1. TS2305: Module @testApp/components has no exported member OptionSelector

Svar #1

import type { ReactNode } from 'react'; // Import ReactNode as a type

Relaterte artikler