TypeScript React应用程序中的PropTypes

React.PropTypes在TypeScript React Application中使用有意义吗?还是“皮带和吊带”的情况?

由于组件类是使用Props类型参数声明的

interface Props {
    // ...
}
export class MyComponent extends React.Component<Props, any> { ... }

有添加任何真正的好处吗

static propTypes {
    myProp: React.PropTypes.string
}

对类的定义?

阳光达蒙达蒙2020/03/12 18:08:55

我猜在某些混乱的情况下,在编译时无法推断道具的类型,那么查看使用产生的任何警告将很有用propTypes

除此之外,我没有看到任何好处(这就是为什么我从未亲自使用过它)。

MandyEva2020/03/12 18:08:55

将两个组件道具同时保持为TypeScript类型通常没有太大价值React.PropTypes

在某些情况下,这样做很有用:

  • 发布将由普通JavaScript使用的包,例如组件库。
  • 接受并传递外部输入,例如API调用的结果。
  • 使用库中可能没有正确或正确键入的数据(如果有)。

因此,通常这是您可以信任编译时间验证多少的问题。

现在,较新版本的TypeScript可以根据您的React.PropTypesPropTypes.InferProps推断类型,但是生成的类型可能难以使用或在代码的其他地方引用。