TIP: SyntaxKind enum
SyntaxKindはconst enumとして定義されています。これはサンプルです:
export const enum SyntaxKind {
Unknown,
EndOfFileToken,
SingleLineCommentTrivia,
// ... LOTS moreそれは_インライン展開_(例えばts.SyntaxKind.EndOfFileTokenが1になる)されるためのconst enum(前に説明した概念)です。それにより、ASTを扱う際に、デリファレンスするコストが発生しません。しかしコンパイラは--preserveConstEnumsコンパイラフラグでコンパイルされるので、enumは実行時にも利用可能です。なので、JavaScriptでは、必要に応じてts.SyntaxKind.EndOfFileTokenを使用できます。さらに、次の関数を使用してこれらの列挙型メンバを変換し、文字列を表示することもできます。
export function syntaxKindToName(kind: ts.SyntaxKind) {
return (<any>ts).SyntaxKind[kind];
}最終更新
役に立ちましたか?