Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

Style Guide

Josh Field edited this page Feb 3, 2022 · 24 revisions

Prefer functions over classes

  • Easier to test
  • Easier to extend
  • Easier to integrate data-oriented paradigm (such as an ECS)

Eliminate global scope and provide function-specific extensibility by introducing module exporters

const addOne = (i: number) => {
  return i++
}

const subtractOne = (i: number) => {
  return i–
}

export const CustomMathUtil = {
  addOne,
  subOne
}

Testing

describe(‘CustomMathUtil’, () => {


  describe(‘addOne’, () => {
    
    // first test case
    it(‘should add one’, () => {

      assert.equal(addOne(1), 2)

    })

    // second test case
    it(‘should return NaN to non-number’, () => {

      assert.equal(addOne(undefined!), NaN)

    })

  })

})
Clone this wiki locally