From 1701f4a0d5721b4323a78d71875ca95e97d7eb81 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Tue, 1 Aug 2017 09:00:01 -0500 Subject: [PATCH] Print declare for TSInterfaceDeclaration (#2574) --- src/printer.js | 4 ++++ .../__snapshots__/jsfmt.spec.js.snap | 11 +++++++++++ tests/typescript_declare/declare_interface.ts | 3 +++ 3 files changed, 18 insertions(+) create mode 100644 tests/typescript_declare/declare_interface.ts diff --git a/src/printer.js b/src/printer.js index 840fbe02..cecb4667 100644 --- a/src/printer.js +++ b/src/printer.js @@ -856,6 +856,10 @@ function genericPrintNoParens(path, options, print, args) { ]); } case "TSInterfaceDeclaration": + if (isNodeStartingWithDeclare(n, options)) { + parts.push("declare "); + } + parts.push( n.abstract ? "abstract " : "", printTypeScriptModifiers(path, options, print), diff --git a/tests/typescript_declare/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_declare/__snapshots__/jsfmt.spec.js.snap index c9fba276..cf2159e6 100644 --- a/tests/typescript_declare/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_declare/__snapshots__/jsfmt.spec.js.snap @@ -18,3 +18,14 @@ declare namespace A { } `; + +exports[`declare_interface.ts 1`] = ` +declare interface Dictionary { + [index: string]: T +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +declare interface Dictionary { + [index: string]: T; +} + +`; diff --git a/tests/typescript_declare/declare_interface.ts b/tests/typescript_declare/declare_interface.ts new file mode 100644 index 00000000..77a9962c --- /dev/null +++ b/tests/typescript_declare/declare_interface.ts @@ -0,0 +1,3 @@ +declare interface Dictionary { + [index: string]: T +}