code: function checkHasType(value, type, message) {
      checkNotEmpty(message, "No error message passed to checkHasType");
      if (typeof value !== type) {
          message = message.replace("{{actual}}", typeof value).replace("{{expected}}", type);
          throw new Error(message);
      }
  }
docs: Checks that the value provided has the expected type. If it does not,
  throws an error with the message provided. If the message contains "{{actual}}",
  that will be replaced with the actual type of value; similarly, the string "{{expected}}"
  will be replaced with the expected type given.
  
  @param {mixed} value - The value to check
  @param {string} type - The expected type of the value
  @param {string} message - A message to throw in an Error if the string is empty