TSClass
A class representing a TypeScript/JavaScript class with enhanced functionality for class manipulation. The TSClass provides comprehensive functionality for working with TypeScript/JavaScript classes, including handling class methods, attributes, JSX components, and inheritance relationships. It supports operations like adding source code to class bodies, managing class attributes, and handling React JSX components. Attributes: parent_classes (Parents | None): The parent classes that this class extends or implements. constructor_keyword (str): The keyword used to identify the constructor method.
Inherits from
TSHasBlock, TSSymbol, Class, HasBlock, Exportable, Symbol, Callable, Expression, Usable, Editable, Importable, HasName
Attributes
call_sites
Returns all call sites (invocations) of this callable in the codebase.
code_block
The code block that may trigger an exception
comment
Retrieves the comment group associated with the symbol.
constructor
Returns the constructor method for this class.
constructor_keyword
The keyword used to identify the constructor method.
decorators
Returns a list of decorators associated with this symbol.
dependencies
docstring
Retrieves the docstring of a function or class.
export
Returns the export object that exports this symbol.
exported_name
str | None
Retrieves the exported name of a symbol from its file.
extended
Returns a SymbolGroup of all extended nodes associated with this element.
extended_nodes
Returns the list of nodes associated with this symbol including extended nodes.
extended_source
str
Returns the source text representation of all extended nodes.
file
The file object that this Editable instance belongs to.
file_node_id
NodeId
filepath
str
The file path of the file that this Editable instance belongs to.
full_name
str | None
Returns the full name of the object, including the namespace path.
function_calls
Returns all function calls within the code block and its decorators.
has_semicolon
bool
Checks whether the current symbol has a semicolon at the end.
inline_comment
Property that retrieves the inline comment group associated with the symbol.
is_decorated
bool
Checks if the current symbol has a decorator.
is_exported
bool
Indicates if the symbol is exported from its defining file.
is_jsx
bool
Determine if the class is a React JSX component.
is_reexported
bool
Determines if the symbol is re-exported from a different file.
is_subclass
bool
Indicates whether the current class is a subclass of another class.
jsx_elements
Returns a list of all JSX elements contained within this symbol.
name
str | None
Retrieves the base name of the object without namespace prefixes.
nested_classes
Retrieves the nested classes defined within this class.
node_type
Literal[NodeType.SYMBOL]
parameters
Retrieves all parameters of a callable symbol.
parent
parent_class
Find the class this node is contained in
parent_class_names
Returns a list of the parent class names that this class inherits from.
parent_classes
parent_function
Find the function this node is contained in
parent_statement
Find the statement this node is contained in
resolved_value
Returns the resolved type of an Expression.
return_type
semicolon_node
Retrieves the semicolon node associated with a TypeScript symbol.
source
str
Returns the source code of the symbol.
symbol_type
ts_node
TSNode
type_parameters
variable_usages
Returns Editables for all TreeSitter node instances of variable usages within this node's
Methods
add_attribute
Adds an attribute to a class from another class.
Parameters
The attribute to add to the class.
bool, optional
Whether to include the attribute's dependencies. If True, adds any necessary imports to the class's file. Defaults to False.
Returns
None
add_attribute_from_source
Adds a class attribute from source code to a TypeScript/JavaScript class.
Parameters
str
The source code of the attribute to add to the class.
Returns
None
add_comment
Adds a new comment to the symbol.
Parameters
str
The comment text to be added.
bool
Whether to automatically format the text into a comment style. Defaults to True.
bool
Whether to clean the format of the comment before inserting. Defaults to True.
Type of comment to add. Defaults to TSCommentType.DOUBLE_SLASH.
Returns
None
add_decorator
Adds a decorator to a function or method.
Parameters
str
The decorator to add, including the '@' symbol.
bool, optional
If True, skips adding if the decorator exists.
Returns
bool
True if the decorator was added, False if skipped.
add_keyword
Insert a keyword in the appropriate place before this symbol if it doesn’t already exist.
Parameters
str
The keyword to be inserted. Must be a valid keyword in the language context.
Returns
None
add_source
Adds source code to a class body.
Parameters
str
The source code to be added to the class body.
Returns
None
ancestors
Find all ancestors of the node of the given type. Does not return itself
Returns
attributes
Retrieves all attributes from this Class including those from its superclasses up to a
Parameters
int | None
The maximum depth of superclass traversal. None means no limit, 0 means only this class.
bool
Whether to include private attributes. Defaults to True.
Returns
A list of unique attributes from this class and its superclasses. If an attribute is defined in multiple classes, the first definition encountered is used.
class_component_to_function_component
Converts a class component to a function component.
Returns
None
convert_props_to_interface
Converts React component props to TypeScript interfaces.
Returns
None
edit
Replace the source of this node with new_src.
Parameters
str
The new source code to replace the current source with.
bool
If True, adjusts the indentation of new_src to match the current text's indentation. Defaults to False.
int
The priority of this edit. Higher priority edits take precedence. Defaults to 0.
bool
If True, prevents duplicate edits. Defaults to True.
Returns
None
find
Find and return matching nodes or substrings within an Editable instance.
Parameters
Union[list[str], str]
One or more strings to search for.
bool
If True, only return nodes whose source exactly matches one of the strings_to_match.
Returns
A list of Editable instances that match the search criteria.
find_string_literals
Returns a list of string literals within this node’s source that match any of the given
Parameters
list[str]
A list of strings to search for in string literals.
bool
If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.
Returns
A list of Editable objects representing the matching string literals.
flag
Adds a visual flag comment to the end of this Editable’s source text.
Returns
get_attribute
Returns a specific attribute by name.
Parameters
str
The name of the attribute to search for.
Returns
The matching attribute if found, None otherwise. If multiple attributes with the same name exist in the inheritance hierarchy, returns the first one found.
get_component
Returns a specific JSX element from within this symbol’s JSX elements.
Parameters
str
The name of the JSX component to find.
Returns
The matching JSX element if found, None otherwise.
get_import_string
Generates the appropriate import string for a symbol.
Parameters
str | None, optional
The alias to use for the imported symbol. Defaults to None.
str | None, optional
The module to import from. If None, uses the file's import module name.
ImportType, optional
The type of import to generate (e.g., WILDCARD). Defaults to
bool, optional
Whether this is a type-only import. Defaults to False.
Returns
str
A formatted import statement string.
get_method
Returns a specific method by name from the class or any of its superclasses.
Parameters
str
The name of the method to find.
Returns
The method if found, None otherwise.
get_name
Returns the name node of the object.
Returns
The name node of the object. Can be a Name node for simple names, a ChainedAttribute for names with namespaces (e.g., a.b), or None if the object has no name.
get_nested_class
Returns a nested class by name from the current class.
Parameters
str
The name of the nested class to find.
Returns
The nested class if found, None otherwise.
get_parameter
Gets a specific parameter from the callable’s parameters list by name.
Parameters
str
The name of the parameter to retrieve.
Returns
The parameter with the specified name, or None if no parameter with that name exists or if there are no parameters.
get_parameter_by_index
Returns the parameter at the given index.
Parameters
int
The index of the parameter to retrieve.
Returns
The parameter at the specified index, or None if the parameter list is empty or the index does not exist.
get_parameter_by_type
Retrieves a parameter from the callable by its type.
Parameters
The type to search for.
Returns
The parameter with the specified type, or None if no parameter is found or if the callable has no parameters.
get_parent_class
Returns the parent class node with the specified name.
Parameters
str
The name of the parent class to find.
Returns
The matching parent class node, or None if no match is found.
get_variable_usages
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage
Parameters
str
The variable name to search for.
bool
If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.
Returns
List of Editable objects representing variable usage nodes matching the given name.
insert_after
Inserts code after this node.
Parameters
str
The source code to insert after this node.
bool, optional
Whether to adjust the indentation of new_src to match the current node. Defaults to False.
bool, optional
Whether to add a newline before the new_src. Defaults to True.
int, optional
Priority of the insertion transaction. Defaults to 0.
bool, optional
Whether to deduplicate identical transactions. Defaults to True.
Returns
None
insert_before
Inserts text before the current symbol node in the Abstract Syntax Tree.
Parameters
str
The source code text to insert.
bool
Whether to adjust the indentation of new_src to match current text. Defaults to False.
bool
Whether to add a newline after insertion. Defaults to True.
int
Priority of this edit operation. Higher priority edits are applied first. Defaults to 0.
bool
Whether to remove duplicate insertions. Defaults to True.
bool
Whether to insert before extended nodes like comments and decorators. Defaults to True.
Returns
None
is_subclass_of
Checks if the class inherits from a specified parent class.
Parameters
The parent class to check for. Can be specified either as a class name string or Class object.
int | None
Maximum inheritance depth to search. None means no limit.
Returns
bool
True if this class inherits from the parent class, False otherwise.
is_wrapped_in
Check if this node is contained another node of the given class
Returns
bool
methods
Retrieves all methods that exist on this Class, including methods from superclasses, with
Parameters
int | None, optional
Include parent classes up to max_depth. None means no limit, 0 means only current class. Defaults to 0.
bool, optional
Whether to include private methods. Defaults to True.
bool, optional
Whether to include magic methods. Defaults to False.
Returns
move_to_file
Moves the given symbol to a new file and updates its imports and references.
Parameters
The destination file to move the symbol to.
bool
If True, moves all dependencies of the symbol to the new file. If False, adds imports for the dependencies. Defaults to True.
str
The strategy to use for updating imports. Can be either 'add_back_edge' or 'update_all_imports'. Defaults to 'update_all_imports'.
Returns
None
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
Returns
reduce_condition
Reduces an editable to the following condition
Returns
None
remove
Deletes this Node and its related extended nodes (e.g. decorators, comments).
Parameters
bool
Whether to delete surrounding whitespace and formatting. Defaults to True.
int
Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.
bool
Whether to deduplicate removal transactions at the same location. Defaults to True.
Returns
None
rename
Renames a symbol and updates all its references in the codebase.
Parameters
str
The new name for the symbol.
int
Priority of the edit operation. Defaults to 0.
Returns
tuple[NodeId, NodeId]
A tuple containing the file node ID and the new node ID of the renamed symbol.
replace
Search and replace occurrences of text within this node’s source and its extended nodes.
Parameters
str
The text or pattern to search for.
str
The text to replace matches with.
int, optional
Maximum number of replacements to make. Defaults to -1 (replace all).
bool, optional
Whether to treat 'old' as a regex pattern. Defaults to False.
int, optional
Priority of the replacement operation. Defaults to 0.
Returns
int
The total number of replacements made.
search
Returns a list of all regex match of regex_pattern
, similar to python’s re.search().
Parameters
str
The regular expression pattern to search for.
bool
When False, excludes the contents of string literals from the search. Defaults to True.
bool
When False, excludes the contents of comments from the search. Defaults to True.
Returns
A list of Editable objects corresponding to the matches found.
set_comment
Sets a comment to the symbol.
Parameters
str
The comment text to be added.
bool, optional
Whether to automatically format the text into a comment syntax.
bool, optional
Whether to clean the format of the comment before inserting.
The style of comment to add.
Returns
None
set_docstring
Sets or updates a docstring for a code element.
Parameters
str
The docstring text to be added or updated.
bool, optional
Whether to automatically format the text into a docstring format. Defaults to True.
bool, optional
Whether to clean existing formatting from the docstring before inserting. Defaults to True.
bool, optional
Whether to add leading "*" to each line of the comment block. Defaults to True.
bool, optional
Whether to force single line comments to be multi-line. Defaults to False.
Returns
None
set_inline_comment
Sets an inline comment to the symbol.
Parameters
str
The inline comment text to be added.
bool, optional
Whether to automatically format the text as a comment.
bool, optional
Whether to clean the comment format before inserting.
TSNode | None, optional
The specific node to attach the comment to.
Returns
None
set_name
Sets the name of a code element.
Parameters
str
The new name to set for the object.
Returns
None
subclasses
Returns all classes which subclass this class.
Parameters
int | None, optional
Maximum inheritance depth to search. If None, searches all depths. Defaults to None.
Returns
A list of Class objects that inherit from this class.
superclasses
Returns a list of all classes that this class extends, up to max_depth.
Parameters
int | None
The maximum depth to traverse up the inheritance tree. If None, traverses the entire tree.
Returns
A list of all superclass symbols in MRO order, up to max_depth. Returns an empty list if the class has no parent classes.
symbol_usages
Returns a list of symbols that use or import the exportable object.
Parameters
The types of usages to search for. Defaults to any.
usages
Returns a list of usages of the exportable object.
Parameters
Specifies which types of usages to include in the results. Default is any usages.
Returns
A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse.
Was this page helpful?