code: function paramPairString(params) {
              if (!Array.isArray(params)) {
                  return "";
              }
              // When contain $, create { param } string
              if (params.some(contain$destructuringParam)) {
                  const $paramList = params.filter(contain$destructuringParam);
                  const normalParams = withoutDestructuringParam(params);
                  const replacedDestructuringParams = replacedDestructuringParamWithNormal($paramList, normalParams);
                  return replacedDestructuringParams.sort((a, b) => {
                      return a.name > b.name;
                  }).map(function($param) {
                      // { foo, bar }
                      const paramNames = $param.properties.map(param => param.name);
                      return `{ ${paramNames.join(", ")} }`;
                  }).join(", ");
              }
              var paramsStrings = params.map(function(param) {
                  var name = param.name ? param.name : "";
                  if (param.type) {
                      return name + ": " + stringifyType(param.type);
                  } else {
                      return name;
                  }
              });
              return paramsStrings.join(", ");
          }
docs: (param1: Type, param: Type) return TextNode