message: Support ? syntax for optional methods and method signatures.
diff: @@ -1963,6 +1963,10 @@ function genericPrintNoParens(path, options, print) {
  parts.push(path.call(print, "key"));
  }
  + if (n.optional) {
  + parts.push("?");
  + }
  +
  parts.push(
  path.call(print, "typeParameters"),
  "(",
  @@ -2417,9 +2421,14 @@ function printMethod(path, options, print) {
  key = concat(["[", key, "]"]);
  }
  + parts.push(key);
  +
  + if (node.optional) {
  + parts.push("?");
  + }
  +
  if (node === nodeValue) {
  parts.push(
  - key,
  path.call(print, "typeParameters"),
  "(",
  printFunctionParams(path, options, print),
  @@ -2435,7 +2444,6 @@ function printMethod(path, options, print) {
  } else {
  parts.push(
  - key,
  path.call(print, "value", "typeParameters"),
  "(",
  path.call(function(valuePath) {
  