Token

type Token = TokenNode<TokenType.AssignmentOperator> | TokenNode<TokenType.VariableDeclaration> | TokenNode<TokenType.LineBreak> | TokenNode<TokenType.ConsoleLog> | TokenValueNode<TokenType.Literal> | TokenValueNode<TokenType.String>

Let's put all of these possible types together, and create one super type called Token.

This is the type we'll be using whenever we reference a token, as as token can be any of these different values.