diff --git a/packages/babel-generator/src/generators/typescript.js b/packages/babel-generator/src/generators/typescript.js index ea3e221843..dbdb5bce7f 100644 --- a/packages/babel-generator/src/generators/typescript.js +++ b/packages/babel-generator/src/generators/typescript.js @@ -317,7 +317,7 @@ export function TSParenthesizedType(node) { } export function TSTypeOperator(node) { - this.token(node.operator); + this.word(node.operator); this.space(); this.print(node.typeAnnotation, node); } diff --git a/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/input.js b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/input.js new file mode 100644 index 0000000000..ca0cbc0136 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/input.js @@ -0,0 +1,5 @@ +let map1: { [P in string]: number }; +let map2: { readonly [P in string]?: number }; +let map3: { +readonly [P in string]+?: number }; +let map4: { -readonly [P in string]-?: number }; +let map5: { [P in keyof Q]: number }; diff --git a/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/options.json b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/options.json new file mode 100644 index 0000000000..cfaebcb412 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/options.json @@ -0,0 +1,5 @@ +{ + "compact": true, + "sourceType": "module", + "plugins": ["typescript"] +} diff --git a/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/output.js b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/output.js new file mode 100644 index 0000000000..71a022d1c5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/typescript/types-mapped-compact/output.js @@ -0,0 +1 @@ +let map1:{[P in string]:number};let map2:{readonly[P in string]?:number};let map3:{+readonly[P in string]+?:number};let map4:{-readonly[P in string]-?:number};let map5:{[P in keyof Q]:number}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/typescript/types-mapped/input.js b/packages/babel-generator/test/fixtures/typescript/types-mapped/input.js index 6415810f05..ca0cbc0136 100644 --- a/packages/babel-generator/test/fixtures/typescript/types-mapped/input.js +++ b/packages/babel-generator/test/fixtures/typescript/types-mapped/input.js @@ -2,3 +2,4 @@ let map1: { [P in string]: number }; let map2: { readonly [P in string]?: number }; let map3: { +readonly [P in string]+?: number }; let map4: { -readonly [P in string]-?: number }; +let map5: { [P in keyof Q]: number }; diff --git a/packages/babel-generator/test/fixtures/typescript/types-mapped/output.js b/packages/babel-generator/test/fixtures/typescript/types-mapped/output.js index 208e77ca40..31b6e60433 100644 --- a/packages/babel-generator/test/fixtures/typescript/types-mapped/output.js +++ b/packages/babel-generator/test/fixtures/typescript/types-mapped/output.js @@ -1,4 +1,5 @@ let map1: { [P in string]: number }; let map2: { readonly [P in string]?: number }; let map3: { +readonly [P in string]+?: number }; -let map4: { -readonly [P in string]-?: number }; \ No newline at end of file +let map4: { -readonly [P in string]-?: number }; +let map5: { [P in keyof Q]: number }; \ No newline at end of file