@@ -15,6 +15,7 @@ const {
1515 isCallExpression,
1616 isMemberExpression,
1717 isObjectProperty,
18+ isTSTypeExpression,
1819} = require ( "./utils/index.js" ) ;
1920
2021function needsParens ( path , options ) {
@@ -244,14 +245,16 @@ function needsParens(path, options) {
244245 // fallthrough
245246 case "TSTypeAssertion" :
246247 case "TSAsExpression" :
248+ case "TSSatisfiesExpression" :
247249 case "LogicalExpression" :
248250 switch ( parent . type ) {
251+ case "TSSatisfiesExpression" :
249252 case "TSAsExpression" :
250253 // example: foo as unknown as Bar
251- return node . type !== "TSAsExpression" ;
254+ return ! isTSTypeExpression ( node ) ;
252255
253256 case "ConditionalExpression" :
254- return node . type === "TSAsExpression" ;
257+ return isTSTypeExpression ( node ) ;
255258
256259 case "CallExpression" :
257260 case "NewExpression" :
@@ -282,7 +285,7 @@ function needsParens(path, options) {
282285 case "AssignmentPattern" :
283286 return (
284287 name === "left" &&
285- ( node . type === "TSTypeAssertion" || node . type === "TSAsExpression" )
288+ ( node . type === "TSTypeAssertion" || isTSTypeExpression ( node ) )
286289 ) ;
287290
288291 case "LogicalExpression" :
@@ -363,7 +366,7 @@ function needsParens(path, options) {
363366 if (
364367 parent . type === "UnaryExpression" ||
365368 parent . type === "AwaitExpression" ||
366- parent . type === "TSAsExpression" ||
369+ isTSTypeExpression ( parent ) ||
367370 parent . type === "TSNonNullExpression"
368371 ) {
369372 return true ;
@@ -377,6 +380,7 @@ function needsParens(path, options) {
377380 case "SpreadElement" :
378381 case "SpreadProperty" :
379382 case "TSAsExpression" :
383+ case "TSSatisfiesExpression" :
380384 case "TSNonNullExpression" :
381385 case "BindExpression" :
382386 return true ;
@@ -612,6 +616,7 @@ function needsParens(path, options) {
612616 case "TSTypeAssertion" :
613617 case "TypeCastExpression" :
614618 case "TSAsExpression" :
619+ case "TSSatisfiesExpression" :
615620 case "TSNonNullExpression" :
616621 return true ;
617622
@@ -661,6 +666,7 @@ function needsParens(path, options) {
661666 return name === "object" ;
662667
663668 case "TSAsExpression" :
669+ case "TSSatisfiesExpression" :
664670 case "TSNonNullExpression" :
665671 case "BindExpression" :
666672 case "TaggedTemplateExpression" :
0 commit comments