code: function getEffectiveArgumentType(node, argIndex, arg) {
              // Decorators provide special arguments, a tagged template expression provides
              // a special first argument, and string literals get string literal types
              // unless we're reporting errors
              if (node.kind === 143 /* Decorator */) {
                  return getEffectiveDecoratorArgumentType(node, argIndex);
              }
              else if (argIndex === 0 && node.kind === 176 /* TaggedTemplateExpression */) {
                  return getGlobalTemplateStringsArrayType();
              }
              // This is not a synthetic argument, so we return 'undefined'
              // to signal that the caller needs to check the argument.
              return undefined;
          }
docs: Gets the effective argument type for an argument in a call expression.