code: function isIndependentInterface(symbol) {
              for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
                  var declaration = _a[_i];
                  if (declaration.kind === 222 /* InterfaceDeclaration */) {
                      if (declaration.flags & 16384 /* ContainsThis */) {
                          return false;
                      }
                      var baseTypeNodes = ts.getInterfaceBaseTypeNodes(declaration);
                      if (baseTypeNodes) {
                          for (var _b = 0, baseTypeNodes_1 = baseTypeNodes; _b < baseTypeNodes_1.length; _b++) {
                              var node = baseTypeNodes_1[_b];
                              if (ts.isEntityNameExpression(node.expression)) {
                                  var baseSymbol = resolveEntityName(node.expression, 793064 /* Type */, /*ignoreErrors*/ true);
                                  if (!baseSymbol || !(baseSymbol.flags & 64 /* Interface */) || getDeclaredTypeOfClassOrInterface(baseSymbol).thisType) {
                                      return false;
                                  }
                              }
                          }
                      }
                  }
              }
              return true;
          }
docs: Returns true if the interface given by the symbol is free of "this" references. Specifically, the result is true if the interface itself contains no references to "this" in its body, if all base types are interfaces, and if none of the base interfaces have a "this" type.