@@ -1009,7 +1009,7 @@ const thisConverter: TypeConverter<ts.ThisTypeNode> = {
10091009 } ,
10101010} ;
10111011
1012- const tupleConverter : TypeConverter < ts . TupleTypeNode , ts . TupleTypeReference > = {
1012+ const tupleConverter = {
10131013 kind : [ ts . SyntaxKind . TupleType ] ,
10141014 convert ( context , node ) {
10151015 const elements = node . elements . map ( ( node ) => convertType ( context , node ) ) ;
@@ -1061,7 +1061,7 @@ const tupleConverter: TypeConverter<ts.TupleTypeNode, ts.TupleTypeReference> = {
10611061
10621062 return new TupleType ( elements ?? [ ] ) ;
10631063 } ,
1064- } ;
1064+ } satisfies TypeConverter < ts . TupleTypeNode , ts . TupleTypeReference > ;
10651065
10661066const supportedOperatorNames = {
10671067 [ ts . SyntaxKind . KeyOfKeyword ] : "keyof" ,
@@ -1265,6 +1265,12 @@ function convertTypeInlined(context: Context, type: ts.Type): SomeType {
12651265 const elementType = convertType ( context , context . checker . getTypeArguments ( type as ts . TypeReference ) [ 0 ] ) ;
12661266 return new ArrayType ( elementType ) ;
12671267 }
1268+ if ( isTypeReference ( type ) && context . checker . isTupleType ( type ) ) {
1269+ const tupleNode = context . checker . typeToTypeNode ( type . target , void 0 , ts . NodeBuilderFlags . IgnoreErrors ) ! ;
1270+ if ( ts . isTupleTypeNode ( tupleNode ) ) {
1271+ return tupleConverter . convertType ( context , type as ts . TupleTypeReference , tupleNode ) ;
1272+ }
1273+ }
12681274
12691275 return typeLiteralConverter . convertType (
12701276 context ,
0 commit comments