private notSimpleBagOfProperties()

in lib/declaration.ts [164:187]


  private notSimpleBagOfProperties(type: ts.Type): boolean {
    if (this.tc.getSignaturesOfType(type, ts.SignatureKind.Call).length > 0) return true;
    if (this.tc.getSignaturesOfType(type, ts.SignatureKind.Construct).length > 0) return true;
    if (type.symbol) {
      let declaration = type.symbol.declarations.find(ts.isInterfaceDeclaration);
      // We have to check the actual declaration as
      if (declaration && declaration.members) {
        let members = declaration.members;
        for (let i = 0; i < members.length; ++i) {
          let node = members[i];
          if (base.isStatic(node)) return true;
          switch (node.kind) {
            case ts.SyntaxKind.PropertyDeclaration:
            case ts.SyntaxKind.PropertySignature:
            case ts.SyntaxKind.VariableDeclaration:
              break;
            default:
              return true;
          }
        }
      }
    }
    return false;
  }