React - static propTypesとReact.PropTypes

はじめに

ReactでpropTypesを書いている時にstatic propTypesReact.PropTypes は何が違うのか気になったので、調べたことをメモします。

↓の何が違うのか、ということです。

// static propTypes
class App extends React.Component {
    static propTypes = {
        ....
    }
}

// React.PropTypes
class App extends React.Component {
    ...
}

App.propTypes = {
   ...
}


結論

static propTypes はES7の書き方で、React.PropTypes は ES6の書き方になります。

ES7の書き方( static propTypes )は、propTypesがコンポーネントのトップに書かれるので、どんなパラメータが必要かがわかりやすいなどの理由で こちらがbetter と言われているようです。