JSFiddle - React, Tailwind, and code Playground

Babel + JSX

class BaseModel {
  constructor(props) {
    this.props = props
    Object.keys(props).forEach(propName => {
      const property = props[propName]
      Object.defineProperty(this, propName, {
        set: (value) => this.props[propName] = value,
        get: () => this.props[propName]
      })
    })
  }
}

class UserModel extends BaseModel {}

const user = new UserModel({
  firstName: 'Evert',
  lastName: 'Bob'
})

console.log(user.firstName)