docs: function getEffectiveDecoratorSecondArgumentType(node) {
              // The second argument to a decorator is its `propertyKey`
              if (node.kind === 221 /* ClassDeclaration */) {
                  ts.Debug.fail("Class decorators should not have a second synthetic argument.");
                  return unknownType;
              }
              if (node.kind === 142 /* Parameter */) {
                  node = node.parent;
                  if (node.kind === 148 /* Constructor */) {
                      // For a constructor parameter decorator, the `propertyKey` will be `undefined`.
                      return anyType;
                  }
              }
              if (node.kind === 145 /* PropertyDeclaration */ ||
                  node.kind === 147 /* MethodDeclaration */ ||
                  node.kind === 149 /* GetAccessor */ ||
                  node.kind === 150 /* SetAccessor */) {
                  // The `propertyKey` for a property or method decorator will be a
                  // string literal type if the member name is an identifier, number, or string;
                  // otherwise, if the member name is a computed property name it will
                  // be either string or symbol.
                  var element = node;
                  switch (element.name.kind) {
                      case 69 /* Identifier */:
                      case 8 /* NumericLiteral */:
                      case 9 /* StringLiteral */:
                          return getLiteralTypeForText(32 /* StringLiteral */, element.name.text);
                      case 140 /* ComputedPropertyName */:
                          var nameType = checkComputedPropertyName(element.name);
                          if (isTypeOfKind(nameType, 512 /* ESSymbol */)) {
                              return nameType;
                          }
                          else {
                              return stringType;
                          }
                      default:
                          ts.Debug.fail("Unsupported property name.");
                          return unknownType;
                  }
              }
              ts.Debug.fail("Unsupported decorator target.");
              return unknownType;
          }