message: Unify TSInterfaceDeclaration with InterfaceDeclaration (Flow).
diff: @@ -1493,8 +1493,9 @@ function genericPrintNoParens(path, options, print) {
  // Fall through to InterfaceDeclaration...
  case "InterfaceDeclaration":
  + case "TSInterfaceDeclaration":
  parts.push(
  - fromString("interface ", options),
  + "interface ",
  path.call(print, "id"),
  path.call(print, "typeParameters"),
  " "
  @@ -1503,11 +1504,14 @@ function genericPrintNoParens(path, options, print) {
  if (n["extends"]) {
  parts.push(
  "extends ",
  - fromString(", ").join(path.map(print, "extends"))
  + fromString(", ").join(path.map(print, "extends")),
  + " "
  );
  }
  - parts.push(" ", path.call(print, "body"));
  + if (n.body) {
  + parts.push(path.call(print, "body"));
  + }
  return concat(parts);
  @@ -2021,25 +2025,6 @@ function genericPrintNoParens(path, options, print) {
  path.call(print, "typeParameters")
  ]);
  - case "TSInterfaceDeclaration":
  - parts = [];
  - parts.push(
  - "interface ",
  - path.call(print, "id"),
  - path.call(print, "typeParameters")
  - );
  -
  - if (n.extends) {
  - parts.push(
  - " extends ",
  - fromString(", ").join(path.map(print, "extends"))
  - );
  - }
  -
  - parts.push(" ", path.call(print, "body"));
  -
  - return concat(parts);
  -
  case "TSInterfaceBody":
  var lines = fromString(";\n").join(path.map(print, "body"));
  if (lines.isEmpty()) {
  