找不到名称 React$Node React Native

ImF*_*had 5 typescript reactjs react-native typescript-typings

我正在将打字稿添加到我的 react-native 应用程序中,

在 App.tsx

我在找不到名称 React$Node上收到此错误

const App: () => React$Node = () => {
 ...
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*ley 6

我不确定您使用的语法,也不确定React$Node来自哪里。根据我的经验,正确的类型和语法应该是React.ReactNodeor React.ReactElement。例如:

import React from 'react'

const App = (): React.ReactElement => { 

  return (
    // component code
  )
}
Run Code Online (Sandbox Code Playgroud)

至于ReactNode和之间的区别ReactElement(因为我不完全确定),我发现福特04的回答很有用 - 这里引用:

ReactElement 和 JSX.ElementReact.createElement 直接调用或通过 JSX 转译调用的结果。它是一个带有type, props和的对象key。[ JSX.Element]

ReactNode用作render()类组件的返回类型。它也是children带有 [ PropsWithChildren] 的属性的默认类型

  • 我刚刚查找了 `React$Node` - 它是一个 [Flow](https://flow.org) 类型。因此 TypeScript 的对应类型将是“ReactNode”(如果不导入,则为“React.ReactNode”)。确保安装了 [`@types/react`](https://www.npmjs.com/package/@types/react) 和 [`@types/react-native`](https://www.npmjs. com/package/@types/react-native)。 (2认同)