Is it OK to put propTypes and defaultProps as static props inside React class?

In fact, it’s exactly the same in terms of performance. React.JS is a relatively new technology, so it’s not clear yet what are considered good practices or don’t. If you want to trust someone, check this AirBNB’s styleguide:

import React, { PropTypes } from 'react';

const propTypes = {
  id: PropTypes.number.isRequired,
  url: PropTypes.string.isRequired,
  text: PropTypes.string,

const defaultProps = {
  text: 'Hello World',

class Link extends React.Component {
  static methodsAreOk() {
    return true;

  render() {
    return <a href={this.props.url} data-id={}>{this.props.text}</a>

Link.propTypes = propTypes;
Link.defaultProps = defaultProps;

export default Link;

They are declaring a const with the propTypes object literals, keep the class pretty clean and assign them later to the static properties. I personally like this approach 🙂

Leave a Comment