Skip to main content

TIP: SyntaxKind enum

AST 提示: SyntaxKind

SyntaxKind 被定义为 const enum,这里是一个示例:


export const enum SyntaxKind {
Unknown,
EndOfFileToken,
SingleLineCommentTrivia,
// ... LOTS more

它是一个 const enum,因此它被内联(例如 ts.SyntaxKind.EndOfFileToken 变成 1),并且在使用 AST 时我们不会得到取消引用的成本。 但是,编译器是使用 --preserveConstEnums 编译器标志编译的,因此枚举在运行时仍然可用。因此,在 JavaScript 中,您可以 ts.SyntaxKind.EndOfFileToken 根据需要使用。 此外,您可以使用以下函数将这些枚举成员转换为显示字符串:

export function syntaxKindToName(kind: ts.SyntaxKind) {
return (<any>ts).SyntaxKind[kind];
}