@@ -218,6 +218,8 @@ namespace ts {
218
218
updateAsExpression,
219
219
createNonNullExpression,
220
220
updateNonNullExpression,
221
+ createSatisfiesExpression,
222
+ updateSatisfiesExpression,
221
223
createNonNullChain,
222
224
updateNonNullChain,
223
225
createMetaProperty,
@@ -3099,6 +3101,26 @@ namespace ts {
3099
3101
: node ;
3100
3102
}
3101
3103
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
+
3102
3124
// @api
3103
3125
function createNonNullChain ( expression : Expression ) {
3104
3126
const node = createBaseExpression < NonNullChain > ( SyntaxKind . NonNullExpression ) ;
@@ -5590,6 +5612,7 @@ namespace ts {
5590
5612
case SyntaxKind . ParenthesizedExpression : return updateParenthesizedExpression ( outerExpression , expression ) ;
5591
5613
case SyntaxKind . TypeAssertionExpression : return updateTypeAssertion ( outerExpression , outerExpression . type , expression ) ;
5592
5614
case SyntaxKind . AsExpression : return updateAsExpression ( outerExpression , expression , outerExpression . type ) ;
5615
+ case SyntaxKind . SatisfiesExpression : return updateSatisfiesExpression ( outerExpression , expression , outerExpression . type ) ;
5593
5616
case SyntaxKind . NonNullExpression : return updateNonNullExpression ( outerExpression , expression ) ;
5594
5617
case SyntaxKind . PartiallyEmittedExpression : return updatePartiallyEmittedExpression ( outerExpression , expression ) ;
5595
5618
}
@@ -6320,6 +6343,7 @@ namespace ts {
6320
6343
case SyntaxKind . ArrayBindingPattern :
6321
6344
return TransformFlags . BindingPatternExcludes ;
6322
6345
case SyntaxKind . TypeAssertionExpression :
6346
+ case SyntaxKind . SatisfiesExpression :
6323
6347
case SyntaxKind . AsExpression :
6324
6348
case SyntaxKind . PartiallyEmittedExpression :
6325
6349
case SyntaxKind . ParenthesizedExpression :
0 commit comments