I'm adding typescript to my react-native app,
in App.tsx
I'm getting this error on Cannot find name React$Node on
const App: () => React$Node = () => {
...
}
I'm adding typescript to my react-native app,
in App.tsx
I'm getting this error on Cannot find name React$Node on
const App: () => React$Node = () => {
...
}
I'm unsure of the syntax you're using, and not sure where React$Node comes from. From my experience, the correct typing and syntax should be React.ReactNode or React.ReactElement. For example:
import React from 'react'
const App = (): React.ReactElement => {
return (
// component code
)
}
As for the difference between ReactNode and ReactElement (because I wasn't entirely sure), I found ford04's answer useful - quoted here:
ReactElement and JSX.Element are the result of invoking
React.createElementdirectly or via JSX transpilation. It is an object withtype,propsandkey. [JSX.Element]ReactNode is used as return type for
render()in class components. It also is the default type forchildrenattribute with [PropsWithChildren]
React$Node - it's a Flow type. So the corresponding type for TypeScript will be ReactNode (or React.ReactNode if you don't import it). Make sure you install @types/react and @types/react-native.