reactjs - App hänvisar till ett värde, men används som en typ här. Menade du 'typeof App'?


Jag vill lära mig genom att göra Typescript med React så jag har manuellt migrerat från JS till TS i min create-react-app men min standard testfil App.test.ts:

import { render, screen } from '@testing-library/react';
import App from './App';

test('renders learn react link', () => {
  render(<App />); // There's an error here
  const linkElement = screen.getByText(/learn react/i);
  expect(linkElement).toBeInTheDocument();
});

har detta fel:

'App' refers to a value, but is being used as a type here. Did you mean 'typeof App'?

Svar #1

Använd .tsx för JSX och .ts för filer utan JSX. Detta beror på att du använder .ts-tillägg för filer med JSX. För att lösa detta, ändra filtilläggen från .ts till .tsx för alla filer som innehåller komponentkod och logik. Detta gör att <App/> kan tolkas som JSX och inte vanlig JavaScript/TypeScript. Fungerade för mig.

Relaterade artiklar