@@ -218,6 +218,8 @@ namespace ts {
218218 updateAsExpression,
219219 createNonNullExpression,
220220 updateNonNullExpression,
221+ createSatisfiesExpression,
222+ updateSatisfiesExpression,
221223 createNonNullChain,
222224 updateNonNullChain,
223225 createMetaProperty,
@@ -3099,6 +3101,26 @@ namespace ts {
30993101 : node ;
31003102 }
31013103
3104+ // @api
3105+ function createSatisfiesExpression ( expression : Expression , type : TypeNode ) {
3106+ const node = createBaseExpression < SatisfiesExpression > ( SyntaxKind . SatisfiesExpression ) ;
3107+ node . expression = expression ;
3108+ node . type = type ;
3109+ node . transformFlags |=
3110+ propagateChildFlags ( node . expression ) |
3111+ propagateChildFlags ( node . type ) |
3112+ TransformFlags . ContainsTypeScript ;
3113+ return node ;
3114+ }
3115+
3116+ // @api
3117+ function updateSatisfiesExpression ( node : SatisfiesExpression , expression : Expression , type : TypeNode ) {
3118+ return node . expression !== expression
3119+ || node . type !== type
3120+ ? update ( createSatisfiesExpression ( expression , type ) , node )
3121+ : node ;
3122+ }
3123+
31023124 // @api
31033125 function createNonNullChain ( expression : Expression ) {
31043126 const node = createBaseExpression < NonNullChain > ( SyntaxKind . NonNullExpression ) ;
@@ -5590,6 +5612,7 @@ namespace ts {
55905612 case SyntaxKind . ParenthesizedExpression : return updateParenthesizedExpression ( outerExpression , expression ) ;
55915613 case SyntaxKind . TypeAssertionExpression : return updateTypeAssertion ( outerExpression , outerExpression . type , expression ) ;
55925614 case SyntaxKind . AsExpression : return updateAsExpression ( outerExpression , expression , outerExpression . type ) ;
5615+ case SyntaxKind . SatisfiesExpression : return updateSatisfiesExpression ( outerExpression , expression , outerExpression . type ) ;
55935616 case SyntaxKind . NonNullExpression : return updateNonNullExpression ( outerExpression , expression ) ;
55945617 case SyntaxKind . PartiallyEmittedExpression : return updatePartiallyEmittedExpression ( outerExpression , expression ) ;
55955618 }
@@ -6320,6 +6343,7 @@ namespace ts {
63206343 case SyntaxKind . ArrayBindingPattern :
63216344 return TransformFlags . BindingPatternExcludes ;
63226345 case SyntaxKind . TypeAssertionExpression :
6346+ case SyntaxKind . SatisfiesExpression :
63236347 case SyntaxKind . AsExpression :
63246348 case SyntaxKind . PartiallyEmittedExpression :
63256349 case SyntaxKind . ParenthesizedExpression :
0 commit comments