ts-morph

Identifiers

Identifiers are nodes that reference or define the name of a node.

For example, in the following code the identifiers are the variable name and the use of the variable:

const identifier = 5;
console.log(identifier);

Getting identifiers

A lot of the time, a node will have a name and you can retrieve the identifier via .getNameNode().

If not, from a given node, you can get all the children or descendants that are identifiers. For example:

const childIdentifiers = node.getChildrenOfKind(SyntaxKind.Identifier);
const descendantIdentifiers = node.getDescendantsOfKind(SyntaxKind.Identifier);

Text

Get the text:

const text = identifier.getText();

Rename

Rename an identifier:

identifier.rename("someNewName");

Find References

Find all the references:

const references = identifier.findReferences();

Get Definitions

Gets the definitions of the identifier. This is similar to "go to definition" functionality that exists with TypeScript in most IDEs.

const definitions = identifier.getDefinitions();

Or just get the nodes:

const nodes = identifier.getDefinitionNodes();

Get Implementations

Gets the implementations of the identifier. This is similar to "go to implementation" functionality that exists with TypeScript in most IDEs.

const implementations = identifier.getImplementations();

Type

Get the type of an identifier:

const identifierType = identifier.getType();