> For the complete documentation index, see [llms.txt](https://typescript-jp.gitbook.io/deep-dive/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://typescript-jp.gitbook.io/deep-dive/overview/ast/ast-tip-syntaxkind.md).

# TIP: SyntaxKind enum

`SyntaxKind`は`const enum`として定義されています。これはサンプルです：

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

それは\_インライン展開\_(例えば`ts.SyntaxKind.EndOfFileToken`が`1`になる)されるための`const enum`([前に説明した概念](/deep-dive/type-system/enums.md))です。それにより、ASTを扱う際に、デリファレンスするコストが発生しません。しかしコンパイラは`--preserveConstEnums`コンパイラフラグでコンパイルされるので、enumは実行時にも利用可能です。なので、JavaScriptでは、必要に応じて`ts.SyntaxKind.EndOfFileToken`を使用できます。さらに、次の関数を使用してこれらの列挙型メンバを変換し、文字列を表示することもできます。

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