UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

118 lines (80 loc) 2.16 kB
--- title: Enums --- ## Enums Enums can be retrieved from source files, namespaces, or function bodies: ```typescript 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()`. ```typescript const enumDeclaration = sourceFile.addEnum({ name: "EnumName", members: [{ name: "member" }] }); ``` ### Remove Call `.remove()`: ```typescript enumDeclaration.remove(); ``` ### Get all members Use `getMembers()`: ```typescript const members = enumDeclaration.getMembers(); ``` ### Get member Use `getMember()`: ```typescript 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()`: ```typescript const member = enumDeclaration.addMember({ name: "newMember", value: 10 }); ``` ### Const enum Check if it's a const enum via `isConstEnum()`: ```typescript enumDeclaration.isConstEnum(); // returns: boolean ``` Get the `const` keyword via `getConstKeyword()`: ```typescript enumDeclaration.getConstKeyword(); // returns: Node | undefined ``` Set if it's a const enum via `setIsConstEnum(value)`: ```typescript enumDeclaration.setIsConstEnum(true); enumDeclaration.setIsConstEnum(false); ``` ## Enum Members ```typescript const member = enumDeclaration.getMember("member"); ``` ### Value The value can be retrieved whether it is implicitly or explicitly defined: ```typescript member.getValue(); // returns: string | number ``` It can also be set to a number: ```typescript member.setValue(5); ``` Or a string: ```typescript member.setValue("string value"); ``` ### Removing Call `remove()` on it: ```typescript member.remove(); ```