From 5c479cc55f7fdb01dadd30b2af36392f8aff99c4 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 14 Nov 2018 21:35:37 +0800 Subject: [PATCH] fix(typescript): do not add invalid semi for construct in interface with prettier-ignore (#5469) --- src/language-js/printer-estree.js | 3 ++- .../__snapshots__/jsfmt.spec.js.snap | 24 +++++++++++++++++++ tests/typescript_interface/ignore.js | 6 +++++ 3 files changed, 32 insertions(+), 1 deletion(-) 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 0ba8fd790592..0b3bf7e38267 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; +}