React 中的尖括号和星号是什么意思?

IT技术 javascript reactjs react-native
2021-05-26 22:22:46

这个表达式中的尖括号和星号是什么意思?

class MainScreen extends React.Component<*> {
  render() {
1个回答

这是一个Flow类型的参数。它指定 Flow 应该推断第一个类型参数的类型,换句话说,推断props的形状,请参阅 上的这个答案<*>这基本上让您可以为 Flow 指定任何形状的对象以推断其类型。假设你有两个props,foobar你可以这样做:

type Props = {
  foo: number,
  bar: string
};

class MyComponent extends React.Component<Props> { … }

或者,如果您不想进行proptyping,您可以这样做:

class MyComponent extends React.Component<*> { … }

并且访问props都是一样的。Flow 只是推断它是一个带有fooand的对象bar