ts-morph
Enums
Enums can be retrieved from source files, namespaces, or function bodies:
const enums = sourceFile.getEnums();
const enum1 = sourceFile.getEnum("Enum1");
const enum2 = sourceFile.getEnum(e => e.getMembers().length === 5);
Add/Insert
Add or insert enums to a source file, namespace, or function like declarations by calling addEnum(), addEnums(), insertEnum(), or insertEnums().
const enumDeclaration = sourceFile.addEnum({
name: "EnumName",
members: [{
name: "member",
}],
});
Remove
Call .remove():
enumDeclaration.remove();
Get all members
Use getMembers():
const members = enumDeclaration.getMembers();
Get member
Use getMember():
const member1 = enumDeclaration.getMember("member1");
const member2 = enumDeclaration.getMember(m => m.getValue() === 1);
Add/Insert member
Members can be added by calling addMember(), addMembers(), insertMember(), or insertMembers():
const member = enumDeclaration.addMember({
name: "newMember",
value: 10,
});
Const enum
Check if it's a const enum via isConstEnum():
enumDeclaration.isConstEnum(); // returns: boolean
Get the const keyword via getConstKeyword():
enumDeclaration.getConstKeyword(); // returns: Node | undefined
Set if it's a const enum via setIsConstEnum(value):
enumDeclaration.setIsConstEnum(true);
enumDeclaration.setIsConstEnum(false);
Enum Members
const member = enumDeclaration.getMember("member");
Value
The value can be retrieved whether it is implicitly or explicitly defined:
enumMember.getValue(); // returns: string | number
It can also be set to a number:
enumMember.setValue(5);
Or a string:
enumMember.setValue("string value");
Removing
Call remove() on it:
enumMember.remove();