Docs / languages / typescript · Edit on GitHub

TypeScript

Tier 1 plugin for TypeScript and TSX. Extends the JavaScript model with interfaces, implements clauses, and decorators.

Implementation

Plugin cratecrates/rgctl-lang-typescript (TypeScriptPlugin)
Grammartree-sitter-typescript
Extensions.ts, .tsx
Discoverrgctl discover . -l typescript -e node_modules,dist --with-cfg
CFG / taintEnabled

Tree-sitter node kinds: function_declaration, method_definition, arrow_function, class_declaration, interface_declaration, import_statement.

What is extracted

Nodes

  • Function, Class, Interface
  • Import — ES module imports

Edges

EdgeMeaning
CALLSCall expressions
EXTENDSClass extends
IMPLEMENTSClass implements interface
ANNOTATEDWITHDecorators
ImportModule import graph

Verification

Fixturergctl-tests/ecommerce-typescript
Example corpusexample/vscode/src (-l typescript)
Smoke scriptrgctl-tests/gql-verification-smoke/verify-extraction-gql-typescript.sh

GQL verification queries

Fixture probes

ProbeGQL
Module graph (Import)MATCH (n:Import) RETURN n LIMIT 10000
Heritage (EXTENDS)MATCH (a)-[:EXTENDS]->(b) RETURN a,b LIMIT 10000
Implements (IMPLEMENTS)MATCH (a)-[:IMPLEMENTS]->(b) RETURN a,b LIMIT 10000
Decorators (ANNOTATEDWITH)MATCH (a)-[:ANNOTATEDWITH]->(b) RETURN a,b LIMIT 10000
Call resolution (CALLS)MATCH (a)-[:CALLS]->(b) RETURN a,b LIMIT 10000

Example smoke (example/vscode/src)

ProbeGQL
Import (scale)MATCH (n:Import) RETURN n LIMIT 10000
IMPLEMENTS (scale)MATCH (a)-[:IMPLEMENTS]->(b) RETURN a,b LIMIT 10000
EXTENDS (scale)MATCH (a)-[:EXTENDS]->(b) RETURN a,b LIMIT 10000
CALLS (scale)MATCH (a)-[:CALLS]->(b) RETURN a,b LIMIT 10000

Related

  • Languages index
  • JavaScript
  • Openspec: typescript-module-graph, typescript-heritage, typescript-decorators, typescript-call-resolution