From 53cd310b93887d4601844ae5189dcbb0be76fd76 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 14 Nov 2018 10:21:05 +0800 Subject: [PATCH 1/2] test: add tests --- .../__snapshots__/jsfmt.spec.js.snap | 24 +++++++++++++++++++ tests/typescript_interface/ignore.js | 6 +++++ 2 files changed, 30 insertions(+) diff --git a/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap index 0ba8fd790592..deadb8f1f036 100644 --- a/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap @@ -67,6 +67,12 @@ interface foo extends bar { g(): void; h(): void; } + +interface T { + // prettier-ignore + new(): T; + new(): T; +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ interface Interface { // prettier-ignore @@ -91,6 +97,12 @@ interface foo extends bar { h(): void; } +interface T { + // prettier-ignore + new(): T;; + new (): T; +} + `; exports[`ignore.js - typescript-verify 2`] = ` @@ -116,6 +128,12 @@ interface foo extends bar { g(): void; h(): void; } + +interface T { + // prettier-ignore + new(): T; + new(): T; +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ interface Interface { // prettier-ignore @@ -140,6 +158,12 @@ interface foo extends bar { h(): void } +interface T { + // prettier-ignore + new(): T; + new (): T +} + `; exports[`long-extends.ts - typescript-verify 1`] = ` diff --git a/tests/typescript_interface/ignore.js b/tests/typescript_interface/ignore.js index 163c21ba12d6..a75ca1ebe940 100644 --- a/tests/typescript_interface/ignore.js +++ b/tests/typescript_interface/ignore.js @@ -20,3 +20,9 @@ interface foo extends bar { g(): void; h(): void; } + +interface T { + // prettier-ignore + new(): T; + new(): T; +} From a8edec6de4e50e48b56aac6cae97eff9a8bf1147 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 14 Nov 2018 10:21:53 +0800 Subject: [PATCH 2/2] fix(typescript): do not add invalid semi for construct in interface with prettier-ignore --- src/language-js/printer-estree.js | 3 ++- tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 6c4225ffd704..8a8f265d6275 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -1338,7 +1338,8 @@ function printPathNoParens(path, options, print, args) { separatorParts = [separator, line]; if ( (prop.node.type === "TSPropertySignature" || - prop.node.type === "TSMethodSignature") && + prop.node.type === "TSMethodSignature" || + prop.node.type === "TSConstructSignature") && hasNodeIgnoreComment(prop.node) ) { separatorParts.shift(); diff --git a/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap index deadb8f1f036..0b3bf7e38267 100644 --- a/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_interface/__snapshots__/jsfmt.spec.js.snap @@ -99,7 +99,7 @@ interface foo extends bar { interface T { // prettier-ignore - new(): T;; + new(): T; new (): T; }