code: function NumberType(typeSpec) {
    // Default to integer values
    this._allowFloat = !!typeSpec.allowFloat;
  
    if (typeSpec) {
      this._min = typeSpec.min;
      this._max = typeSpec.max;
      this._step = typeSpec.step || 1;
  
      if (!this._allowFloat &&
          (this._isFloat(this._min) ||
           this._isFloat(this._max) ||
           this._isFloat(this._step))) {
        throw new Error('allowFloat is false, but non-integer values given in type spec');
      }
    }
    else {
      this._step = 1;
    }
  }
docs: We distinguish between integers and floats with the _allowFloat flag.