code: function findInheritedMethods(ci, methods) {
      while (ci && ci.extends) {
          ci = findTypeMetaInfo(ci.extends);
          if (!ci) {
              console.warn('no meta info for: ' + ci.extends);
              continue;
          }
          (ci.methodsClass || ci.methods).forEach(m => {
              if (methods.find(mm => mm.name === m.name && getArgumentsString(mm) == getArgumentsString(m))) {
                  return;
              }
              if (m.inheritance || isAngularLifeCircle(m.name)) {
                  return;
              }
              // deep copy
              m = JSON.parse(JSON.stringify(m));
              delete m.inheritance;
              m.inheritInfo = {from: ci.name, type: ci.type || ci.subtype};
              methods.push(m);
          });
      }
  }
docs: not including the current class's methods