My learning diary

Constants

I thought consolidating constants was evil. Just two or three dozens of them were enough to become a huge headache for me. In Java, this practice is frowned upon. In JavaScript, it seemed alright.

The answer which received the bounty recommended the following:

// Warning: This answer was written in 2014.
module.exports = Object.freeze({
  MY_CONSTANT: 'some value',
  ANOTHER_CONSTANT: 'another value'
});

It was my first time encountering Object.freeze, so I went to google for the difference between Object.freeze and const. TL;DR: Object.freeze prevents further writing to the keys and their values (with exceptions). Nested keys are exempt from this.

If you scroll a little further down the thread about sharing JavaScript constants, you will see:

const FOO = 'bar';

module.exports = {
  FOO
}

That led to my final answer:

export const TOTAL_MONTHS_PER_YEAR = 12;

// import { TOTAL_MONTHS_PER_YEAR } from './constants';

This method of managing constants is not reviewed by my team yet. Will keep you posted, but it will be some time before I request for another review…

Relevant posts