Skip to content

Commit 836de79

Browse files
authored
feat: [TS4.7] support type parameters for typeof (#5067)
1 parent 38c44a8 commit 836de79

File tree

6 files changed

+432
-0
lines changed

6 files changed

+432
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import type { AST_NODE_TYPES } from '../../ast-node-types';
22
import type { BaseNode } from '../../base/BaseNode';
3+
import type { TSTypeParameterInstantiation } from '../../special/spec';
34
import type { EntityName } from '../../unions/EntityName';
45

56
export interface TSTypeQuery extends BaseNode {
67
type: AST_NODE_TYPES.TSTypeQuery;
78
exprName: EntityName;
9+
typeParameters?: TSTypeParameterInstantiation;
810
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let x: typeof y.z<w>;

packages/typescript-estree/src/convert.ts

+3
Original file line numberDiff line numberDiff line change
@@ -2429,6 +2429,9 @@ export class Converter {
24292429
return this.createNode<TSESTree.TSTypeQuery>(node, {
24302430
type: AST_NODE_TYPES.TSTypeQuery,
24312431
exprName: this.convertType(node.exprName),
2432+
typeParameters:
2433+
node.typeArguments &&
2434+
this.convertTypeArgumentsToTypeParameters(node.typeArguments, node),
24322435
});
24332436
}
24342437

packages/typescript-estree/tests/lib/__snapshots__/semantic-diagnostics-enabled.test.ts.snap

+2
Original file line numberDiff line numberDiff line change
@@ -2786,6 +2786,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e
27862786

27872787
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/types/typeof.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
27882788

2789+
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/types/typeof-with-type-parameters.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
2790+
27892791
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/types/union-intersection.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
27902792

27912793
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/types/union-type.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;

0 commit comments

Comments
 (0)