ts-morph
Variable Statement
A variable statement looks like the following:
export const var1 = "5", var2 = "6";
Get a variable statement
Can be retrieved from source files, namespaces, or function bodies:
const variableStatements = sourceFile.getVariableStatements();
const firstExportedVariableStatement = sourceFile.getVariableStatement(s => s.hasExportKeyword());
Add/Insert
Add or insert variable statements to a source file, namespace, or function like declarations by calling addVariableStatement()
, addVariableStatements()
,
insertVariableStatement()
, or insertVariableStatements()
.
import { Project, VariableDeclarationKind } from "ts-morph";
const variableStatement = sourceFile.addVariableStatement({
declarationKind: VariableDeclarationKind.Const, // defaults to "let"
declarations: [{
name: "myNumber",
initializer: "5",
}, {
name: "myString",
type: "string",
initializer: `'my string'`,
}],
});
Remove
Call .remove()
:
variableStatement.remove();
Declaration type
Get:
const declarationKind = variableStatement.getDeclarationKind();
It will return one of the following values:
import { VariableDeclarationKind } from "ts-morph";
VariableDeclarationKind.Let;
VariableDeclarationKind.Const;
VariableDeclarationKind.Var;
Set:
variableStatement.setDeclarationKind(VariableDeclarationKind.Const);
Variable Declaration
These are the individual declarations within a variable statement.
Get variable declaration
Get them from the variable statement:
const variableDeclarations = variableStatement.getDeclarations();
Or from source files, namespaces, and function bodies:
const variableDeclarations = sourceFile.getVariableDeclarations();
const variableDeclaration = sourceFile.getVariableDeclaration("myVar");
const firstStringTypedVariableDeclaration = sourceFile.getVariableDeclaration(v => v.getType().getText() === "string");
Add/Insert
Add or insert variable declarations to a variable statement by calling addDeclaration()
, addDeclarations()
,
insertDeclaration()
, or insertDeclarations()
.
const declaration = variableStatement.addDeclaration({ name: "num", type: "number" });
Remove
Call .remove()
:
variableDeclaration.remove();