code: function (types, hard) {
              for (var t in types) {
                  if (types.hasOwnProperty(t)) {
                      (function (prop) {
                          Object.defineProperty(props, prop, {
                              get: function () {
                                  for (var i = 0; i < inputs.length; ++i) {
                                      if (!checkType(prop, inputs[i], hard)) {
                                          return false;
                                      }
                                  }
                                  return true;
                              }
                          });
                      }(t));
                  }
              }
          }
docs: Create a function to call with simple and hard types This is done so simple types don't need to check for hard types