code: function getRegularTypeOfObjectLiteral(type) {
              if (!(type.flags & 16777216 /* FreshObjectLiteral */)) {
                  return type;
              }
              var regularType = type.regularType;
              if (regularType) {
                  return regularType;
              }
              var resolved = type;
              var members = transformTypeOfMembers(type, getRegularTypeOfObjectLiteral);
              var regularNew = createAnonymousType(resolved.symbol, members, resolved.callSignatures, resolved.constructSignatures, resolved.stringIndexInfo, resolved.numberIndexInfo);
              regularNew.flags = resolved.flags & ~16777216 /* FreshObjectLiteral */;
              type.regularType = regularNew;
              return regularNew;
          }
docs: If the the provided object literal is subject to the excess properties check,
  create a new that is exempt. Recursively mark object literal members as exempt.
  Leave signatures alone since they are not subject to the check.