如何在React中使用Typescript声明无状态功能组件?

Cés*_*rca 11 typescript reactjs

我已经看到了两种在React中用Typescript声明一个SFC的方法,这两种方法是:

import * as React from 'react'

interface Props {
  message: string
}

const Component = (props: Props) => {
  const { message } = props
  return (
    <div>{message}</div>
  )
}

export default Component
Run Code Online (Sandbox Code Playgroud)

和:

import * as React from 'react'

interface Props {
  message: string
}

const Component: React.StatelessComponent<Props> = props => {
  const { message } = props
  return (
    <div>{message}</div>
  )
}

export default Component
Run Code Online (Sandbox Code Playgroud)

这个问题我看到,如果你在组件中使用它,你可以通过第二种方式从界面中省略子项.

还有什么差异吗?哪一个是首选的,为什么

wil*_*ire 13

貌似React.SFCReact.StatelessComponent已被弃用。

使用React.FunctionComponent来代替:

import * as React from 'react'

interface IProps {
  text: string
}

export const MyComponent: React.FunctionComponent<IProps> = ({ text }: IProps): JSX.Element =>
<div>{text}</div>
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这个名字并不意味着同一件事,因为Dan Abramov很好地总结了这一点。

编辑:请注意,它经常像React.FC<>现在一样被别名。