diff --git a/parser/ts.js b/parser/ts.js index 0563c5e5..19bfca3c 100644 --- a/parser/ts.js +++ b/parser/ts.js @@ -9,7 +9,15 @@ 'use strict'; const babylon = require('@babel/parser'); -const options = require('./tsOptions'); +const baseOptions = require('./tsOptions'); +const options = { + ...baseOptions, + plugins: baseOptions.plugins.map(plugin => + Array.isArray(plugin) && plugin[0] === 'typescript' + ? ['typescript', { disallowAmbiguousJSXLikeChildren: true }] + : plugin + ), +}; /** * Doesn't accept custom options because babylon should be used directly in diff --git a/src/core.js b/src/core.js index 9f51a69d..1a3a7b5e 100644 --- a/src/core.js +++ b/src/core.js @@ -103,6 +103,21 @@ function match(path, filter) { const plugins = []; +/** + * Printer configuration for TypeScript type members. + * This ensures proper separator handling when TSPropertySignature nodes are removed. + */ +const printerConfig = { + printer: { + _TYPESCRIPT: { + TSPropertySignature: { + trailingSeparator: 'always', + leadingSeparator: 'never', + }, + }, + }, +}; + /** * Utility function for registering plugins. *