TsSimpleAst
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);
Adding
You can add enums to a source file or namespace by calling addEnum():
const enumDeclaration = sourceFile.addEnum({
name: "EnumName",
members: [{
name: "member"
}]
});
Add member
Members can be added by calling addMember():
const member = enumDeclaration.addMember({
name: "newMember",
value: 10
});
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);
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");
Get the value
The value can be retrieved whether it is implicitly or explicitly defined:
member.getValue(); // returns: number
Following comma
Enum members may have a comma after them. You can check for that via:
member.hasFollowingComma(); // returns: boolean
And get it via:
member.getFollowingComma(); // returns: node | undefined
Remove a Member
Call remove() on it:
member.remove();