<Comment>/// </Comment><HTML Tag><reference</HTML Tag><Identifier> types=</Identifier><Types>"node"</Types><Identifier> </Identifier><HTML Tag>/></HTML Tag><br/>
<Normal Text></Normal Text><br/>
<Comment>// TypeScript Test</Comment><br/>
<Normal Text></Normal Text><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Student </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Parameter>fullName</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Reserved>constructor</Reserved><Normal Text>(</Normal Text><Reserved>public</Reserved><Normal Text> </Normal Text><Parameter>firstName</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Reserved>public</Reserved><Normal Text> </Normal Text><Parameter>middleInitial</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Reserved>public</Reserved><Normal Text> </Normal Text><Parameter>lastName</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) {</Normal Text><br/>
<Normal Text>        </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Object Member>fullName</Object Member><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>firstName </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><String>" "</String><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Normal Text>middleInitial </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><String>" "</String><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Normal Text>lastName</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    }</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Reserved>interface</Reserved><Normal Text> </Normal Text><Normal Text>Person </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Parameter>firstName</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Parameter>lastName</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>greeter</Function Declaration><Normal Text>(</Normal Text><Parameter>person</Parameter><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>Person</Normal Text><Normal Text>) {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><String>"Hello, "</String><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Objects>person</Objects><Symbol>.</Symbol><Object Member>firstName</Object Member><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><String>" "</String><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Objects>person</Objects><Symbol>.</Symbol><Object Member>lastName</Object Member><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>user </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> </Normal Text><Function Name>Student</Function Name><Normal Text>(</Normal Text><String>"Jane"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"M."</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"User"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Built-in</Comment><br/>
<Built-in Objects>document</Built-in Objects><Symbol>.</Symbol><Object Property (Built-in)>body</Object Property (Built-in)><Symbol>.</Symbol><Object Property (Built-in)>innerHTML</Object Property (Built-in)><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Function Name>greeter</Function Name><Normal Text>(</Normal Text><Normal Text>user</Normal Text><Normal Text>)</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Normal Text>to</Normal Text><br/>
<Built-in Objects>JSON</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>stringify</Object Method (Built-in)><Normal Text>()</Normal Text><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><String>"Hello world"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>os </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Function (Built-in)>require</Function (Built-in)><Normal Text>(</Normal Text><String>'os'</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Built-in Objects>Math</Built-in Objects><Symbol>.</Symbol><Constant>LOG10E</Constant><Symbol>;</Symbol><br/>
<Built-in Objects>Number</Built-in Objects><Symbol>.</Symbol><Constant>MAX_SAFE_INTEGER</Constant><Symbol>;</Symbol><br/>
<Built-in Objects>String</Built-in Objects><Symbol>.</Symbol><Function Name>raw</Function Name><Template>`raw text \.\n${}`</Template><br/>
<Normal Text></Normal Text><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>http </Normal Text><Symbol>=</Symbol><Keyword> require</Keyword><Normal Text>(</Normal Text><String>"http"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>path </Normal Text><Symbol>=</Symbol><Keyword> require</Keyword><Normal Text>(</Normal Text><String>"path"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>URL </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>url</Objects><Symbol>.</Symbol><Object Member>URL</Object Member><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> { </Normal Text><Normal Text>Readable</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>Writable </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"stream"</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> { </Normal Text><Normal Text>isBuffer</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>isString</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>isObject </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"util"</String><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>port </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>8__88___8</Decimal><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>baseUrl </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> </Normal Text><Function Name>URL</Function Name><Normal Text>(</Normal Text><Template>`http://localhost:</Template><Substitution>${</Substitution><Normal Text>port</Normal Text><Substitution>}</Substitution><Template>/`</Template><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>rootDir </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>path</Objects><Symbol>.</Symbol><Function Name>dirname</Function Name><Normal Text>(</Normal Text><Built-in Objects>__dirname</Built-in Objects><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>defaultBrowser </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>os</Objects><Symbol>.</Symbol><Function Name>platform</Function Name><Normal Text>() </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><String>"win32"</String><Normal Text> </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><String>"edge"</String><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><String>"chrome"</String><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>browser</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><String>"edge"</String><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><String>"chrome"</String><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><String>"none"</String><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>defaultBrowser</Normal Text><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>grep</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Types>undefined</Types><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>interface</Reserved><Normal Text> </Normal Text><Normal Text>FileBasedTestConfiguration </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    [</Normal Text><Parameter>setting</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>]</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>swapCase</Function Declaration><Normal Text>(</Normal Text><Parameter>s</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Objects>s</Objects><Symbol>.</Symbol><Function Name>replace</Function Name><Normal Text>(</Normal Text><Regular Expression>/</Regular Expression><Pattern Character Class>\w</Pattern Character Class><Regular Expression>/g</Regular Expression><Symbol>,</Symbol><Normal Text> (</Normal Text><Normal Text>ch</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> {</Normal Text><br/>
<Normal Text>        </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>up </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>ch</Objects><Symbol>.</Symbol><Function Name>toUpperCase</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>        </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Normal Text>ch </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Normal Text>up </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Objects>ch</Objects><Symbol>.</Symbol><Function Name>toLowerCase</Function Name><Normal Text>() </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>up</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    })</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<ControlFlow>for</ControlFlow><Normal Text> (</Normal Text><Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>i </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Normal Text>pieces</Normal Text><Normal Text>) {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>switch</ControlFlow><Normal Text> (</Normal Text><Keyword>true</Keyword><Normal Text>) {</Normal Text><br/>
<Normal Text>        </Normal Text><ControlFlow>case</ControlFlow><Normal Text> </Normal Text><Regular Expression>/</Regular Expression><Pattern Internal Operator>^\"?</Pattern Internal Operator><Regular Expression>Accession</Regular Expression><Pattern Internal Operator>\"?</Pattern Internal Operator><Regular Expression>/</Regular Expression><Symbol>.</Symbol><Function Name>test</Function Name><Normal Text>(</Normal Text><Normal Text>pieces</Normal Text><Normal Text>[</Normal Text><Normal Text>i</Normal Text><Normal Text>])</Normal Text><Symbol>:</Symbol><br/>
<Normal Text>            </Normal Text><Normal Text>numeration</Normal Text><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>] </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>i</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>            </Normal Text><ControlFlow>break</ControlFlow><Symbol>;</Symbol><br/>
<Normal Text>    }</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Reserved>enum</Reserved><Normal Text> </Normal Text><Normal Text>ResponseCode </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Normal Text>Success </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>200</Decimal><Symbol>,</Symbol><br/>
<Normal Text>    </Normal Text><Normal Text>BadRequest </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>400</Decimal><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Substitutions</Comment><br/>
<Module>export</Module><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>isInOpenInterval</Function Declaration><Normal Text>(</Normal Text><Parameter>start</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>end</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text>) {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Function Name>tersible</Function Name><Normal Text>(</Normal Text><Normal Text>a </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Normal Text>start </Normal Text><Symbol>&&</Symbol><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol><</Symbol><Normal Text> </Normal Text><Normal Text>end</Normal Text><Symbol>,</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Template>`(</Template><Substitution>${</Substitution><Normal Text>start</Normal Text><Substitution>}</Substitution><Template>...</Template><Substitution>${</Substitution><Normal Text>end</Normal Text><Substitution>}</Substitution><Template>)`</Template><Normal Text>)</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>bar </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Template>`</Template><Substitution>${</Substitution><Normal Text>x</Normal Text><Substitution>}</Substitution><Template> </Template><Substitution>${</Substitution><Normal Text>y</Normal Text><Substitution>}</Substitution><Template>`</Template><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// readonly</Comment><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>f1</Function Declaration><Normal Text>(</Normal Text><Parameter>mt</Parameter><Symbol>:</Symbol><Normal Text> [</Normal Text><Types>number</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>rt</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Reserved>readonly</Reserved><Normal Text> [</Normal Text><Types>number</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text>]) {</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>f2</Function Declaration><Normal Text>(</Normal Text><Parameter>ma</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>[]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>ra</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Reserved>readonly</Reserved><Normal Text> </Normal Text><Types>string</Types><Normal Text>[]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>mt</Parameter><Symbol>:</Symbol><Normal Text> [</Normal Text><Types>string</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>rt</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Reserved>readonly</Reserved><Normal Text> [</Normal Text><Types>string</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>]) {</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>ReadWrite</Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> { </Normal Text><Symbol>-</Symbol><Reserved>readonly</Reserved><Normal Text> [</Normal Text><Normal Text>P </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Keyword>keyof</Keyword><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>] </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>[</Normal Text><Normal Text>P</Normal Text><Normal Text>] }</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// const assertion</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>obj </Normal Text><Symbol>=</Symbol><Normal Text> { </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>10</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>y</Parameter><Symbol>:</Symbol><Normal Text> [</Normal Text><Decimal>20</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>30</Decimal><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>z</Parameter><Symbol>:</Symbol><Normal Text> { </Normal Text><Parameter>a</Parameter><Symbol>:</Symbol><Normal Text> { </Normal Text><Parameter>b</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>42</Decimal><Normal Text> } } } </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>r2 </Normal Text><Symbol>=</Symbol><Normal Text> { </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>20</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>y</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>10</Decimal><Normal Text> } </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>r2 </Normal Text><Symbol>=</Symbol><Normal Text> {</Normal Text><Symbol>...</Symbol><Normal Text>p</Normal Text><Normal Text>} </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>p1 </Normal Text><Symbol>=</Symbol><Normal Text> { </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>10</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>y</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Decimal>20</Decimal><Normal Text> </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> }</Normal Text><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>p2 </Normal Text><Symbol>=</Symbol><Normal Text> { </Normal Text><Decimal>10</Decimal><Normal Text> </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Symbol>,</Symbol><Normal Text> </Normal Text><String>'foo'</String><Normal Text> </Normal Text><Module>as</Module><Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> }</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Definite assignment operator</Comment><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Cl </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Parameter>one</Parameter><Symbol>?</Symbol><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Parameter>two</Parameter><Symbol>!</Symbol><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>x</Normal Text><Symbol>!</Symbol><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Function with multiple arguments</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>children </Normal Text><Symbol>=</Symbol><Normal Text> []</Normal Text><Symbol>.</Symbol><Function Name>map</Function Name><Symbol><</Symbol><Built-in Objects>Set</Built-in Objects><Symbol><</Symbol><Built-in Objects>Map</Built-in Objects><Symbol><</Symbol><Types>number</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>>>></Symbol><Normal Text>(</Normal Text><Normal Text>element </Normal Text><Special Operators>=></Special Operators><Normal Text> {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>if</ControlFlow><Normal Text> (</Normal Text><Symbol>!</Symbol><Keyword>this</Keyword><Symbol>.</Symbol><Object Member>identityProvider</Object Member><Normal Text>) {</Normal Text><br/>
<Normal Text>        </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Normal Text>element</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    }</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Normal Text>element</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>})</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Numerics</Comment><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hexadecimal>0xA</Hexadecimal><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>b </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Binary>0b1</Binary><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>c </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Octal>0o7</Octal><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>d </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1.1E+3</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>e </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1.E+3</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>f </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>.1E+3</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>g </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1E+3</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>h </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1.1</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>i </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1.</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>j </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>.1</Float><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>k </Normal Text><Symbol>=</Symbol><Normal Text>  </Normal Text><Decimal>1</Decimal><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>l </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>1__.e+3_22</Float><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Float>.2____e2</Float><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Octal>0o1_23</Octal><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Float>11__.</Float><Normal Text> </Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Bigint</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>binBig </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Binary>0b101</Binary><Normal Text>n</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>octBig </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Octal>0o567</Octal><Normal Text>n</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>hexBig </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hexadecimal>0xC0B</Hexadecimal><Normal Text>n</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>decBig </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>123</Decimal><Normal Text>n</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Types</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>a</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>null</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>b</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>123</Decimal><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>c</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>123.456</Float><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>d</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Template>`Geeks`</Template><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>e</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>undefined</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>undefined</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>f</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>boolean</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>true</Keyword><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>g</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Binary>0b111001</Binary><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// Binary</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>h</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Octal>0o436</Octal><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// Octal</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>i</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hexadecimal>0xadf0d</Hexadecimal><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// Hexa-Decimal</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>j</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>bigint</Types><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>123</Decimal><Normal Text>n</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>query </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Function Name>query</Function Name><Symbol><</Symbol><Normal Text>[</Normal Text><Types>number</Types><Normal Text>]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Types>number</Types><Symbol>></Symbol><Normal Text>(</Normal Text><Template>`</Template><br/>
<Template>        SELECT *</Template><br/>
<Template>        FROM statistics</Template><br/>
<Template>        WHERE unit_id = $1`</Template><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>runQuery</Function Declaration><Normal Text>() {</Normal Text><br/>
<Normal Text>    </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>query </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Function Name>createQuery</Function Name><Symbol><</Symbol><Normal Text>[</Normal Text><Types>number</Types><Normal Text>[]]</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>Table</Normal Text><Symbol><</Symbol><Normal Text>Columns</Normal Text><Symbol>>></Symbol><Normal Text>(</Normal Text><Template>`</Template><br/>
<Template>        some SQL here</Template><br/>
<Template>    `</Template><Normal Text>)</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Objects>database</Objects><Symbol>.</Symbol><Function Name>execute</Function Name><Normal Text>(</Normal Text><Normal Text>query</Normal Text><Normal Text>)</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>sdf</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbol>?<</Symbol><Normal Text>ssd</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Types>string</Types><br/>
<Normal Text> </Normal Text><Normal Text>string </Normal Text><Comment>// Don't highlight</Comment><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Normal Text>assa </Normal Text><Symbol>|</Symbol><br/>
<Normal Text>   </Normal Text><Types>string</Types><br/>
<Normal Text>   </Normal Text><Normal Text>string </Normal Text><Symbol>;</Symbol><br/>
<Normal Text>   </Normal Text><Normal Text>string</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> { </Normal Text><Types>string</Types><br/>
<Normal Text>    </Normal Text><Normal Text>string </Normal Text><Normal Text>} </Normal Text><Comment>// Don't highlight</Comment><br/>
<Normal Text></Normal Text><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> [ </Normal Text><Types>string</Types><br/>
<Normal Text>      </Normal Text><Types>string</Types><Normal Text> ]</Normal Text><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> ( </Normal Text><Types>string</Types><br/>
<Normal Text>      </Normal Text><Normal Text>string </Normal Text><Normal Text>) </Normal Text><Comment>// Don't highlight</Comment><br/>
<Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> </Normal Text><Symbol><</Symbol><Types>string</Types><Symbol>></Symbol><br/>
<Reserved>interface</Reserved><Normal Text> </Normal Text><Normal Text>a </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Parameter>aa</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Comment>/* comment</Comment><br/>
<Comment>        */</Comment><Normal Text> </Normal Text><Types>string</Types><Symbol>,</Symbol><br/>
<Normal Text>    </Normal Text><Parameter>bb</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Comment>/* comment */</Comment><br/>
<Normal Text>        </Normal Text><Types>number</Types><Symbol>,</Symbol><br/>
<Normal Text>    </Normal Text><Parameter>cc</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Comment>// comment</Comment><br/>
<Normal Text>        </Normal Text><Types>void</Types><Symbol>,</Symbol><br/>
<Normal Text>    </Normal Text><Parameter>dd</Parameter><Symbol>:</Symbol><br/>
<Normal Text>        </Normal Text><Types>any</Types><Symbol>,</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>null</Keyword><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>{[</Normal Text><Normal Text>key</Normal Text><Normal Text>]</Normal Text><Symbol>:</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Types>any</Types><Normal Text>}</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><br/>
<Keyword>null</Keyword><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>{[</Normal Text><Normal Text>key</Normal Text><Normal Text>]</Normal Text><Symbol>:</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><Normal Text>{</Normal Text><Parameter>a</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text>}}</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><br/>
<Normal Text></Normal Text><br/>
<Comment>// Correctly highlighting regular expressions</Comment><br/>
<Normal Text>dt </Normal Text><Symbol>=</Symbol><Normal Text> ((</Normal Text><Normal Text>dt</Normal Text><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>] </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Float>1e9</Float><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Normal Text>dt</Normal Text><Normal Text>[</Normal Text><Decimal>1</Decimal><Normal Text>]) </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Float>1e6</Float><Normal Text>)</Normal Text><Symbol>.</Symbol><Function Name>toFixed</Function Name><Normal Text>(</Normal Text><Decimal>3</Decimal><Normal Text>)</Normal Text><Symbol>.</Symbol><Function Name>replace</Function Name><Normal Text>(</Normal Text><Regular Expression>/</Regular Expression><Pattern Internal Operator>\.?</Pattern Internal Operator><Regular Expression>0</Regular Expression><Pattern Internal Operator>+$</Pattern Internal Operator><Regular Expression>/</Regular Expression><Symbol>,</Symbol><Normal Text> </Normal Text><String>''</String><Normal Text>) </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><String>'ms'</String><Symbol>;</Symbol><br/>
<Normal Text>(</Normal Text><Normal Text>a</Normal Text><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>] </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) </Normal Text><Symbol>/</Symbol><Normal Text> (</Normal Text><Decimal>2</Decimal><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Type guards</Comment><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>isNumber</Function Declaration><Normal Text>(</Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>any</Types><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>x </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Types>number</Types><Normal Text> {</Normal Text><br/>
<Normal Text>    </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Keyword>typeof</Keyword><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><String>"number"</String><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Conditional expressions (highlight keywords before ":")</Comment><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>C </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Normal Text>w </Normal Text><Symbol>=</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><br/>
<Normal Text>        </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Function Name>a</Function Name><Normal Text>() </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Keyword>true</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Function Name>b</Function Name><Normal Text>() </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Keyword>false</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>true</Keyword><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Normal Text>z </Normal Text><Symbol>=</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><br/>
<Normal Text>        </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Function Name>b</Function Name><Normal Text>() </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Normal Text>hello </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>k</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>foo</Function Declaration><Symbol><</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>X</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>B </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text> {</Normal Text><br/>
<Normal Text>  </Normal Text><ControlFlow>if</ControlFlow><Normal Text> (</Normal Text><Normal Text>arg </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><String>"A"</String><Normal Text>) </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>B </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Types>number</Types><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Types>never</Types><Symbol>></Symbol><Decimal>111</Decimal><Symbol>;</Symbol><br/>
<Normal Text>  </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>B </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Types>never</Types><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>></Symbol><String>"returning a string"</String><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> (</Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>||</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text>) </Normal Text><Symbol>?</Symbol><br/>
<Normal Text>    </Normal Text><Keyword>undefined</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><br/>
<Normal Text>    </Normal Text><Objects>foo</Objects><Symbol>.</Symbol><Object Member>bar</Object Member><Symbol>.</Symbol><Function Name>baz</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>y </Normal Text><Symbol>=</Symbol><Normal Text> (</Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>||</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text>) </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Comment>/* comment */</Comment><Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><br/>
<Normal Text>    </Normal Text><Objects>foo</Objects><Symbol>.</Symbol><Object Member>bar</Object Member><Symbol>.</Symbol><Function Name>baz</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Operator ??</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>??</Symbol><Normal Text> </Normal Text><Function Name>bar</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Types and logical `&&` and `||` operators after `as` expression</Comment><br/>
<Built-in Objects>Date</Built-in Objects><Normal Text> </Normal Text><Module>as</Module><Normal Text> </Normal Text><Types>any</Types><Normal Text> </Normal Text><Symbol>||</Symbol><Normal Text> </Normal Text><Types>null</Types><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>//Assertions</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Parameter>assert</Parameter><Symbol>:</Symbol><Normal Text> (</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>unknown</Types><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>value </Normal Text><Special Operators>=></Special Operators><Normal Text> {}</Normal Text><br/>
<Reserved>declare</Reserved><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>assertIsString</Function Declaration><Normal Text>(</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>unknown</Types><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Reserved>declare</Reserved><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>assertIsArrayOfStrings</Function Declaration><Normal Text>(</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>unknown</Types><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Types>string</Types><Normal Text>[]</Normal Text><Symbol>;</Symbol><br/>
<Reserved>declare</Reserved><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>assertDefined</Function Declaration><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Built-in Objects>NonNullable</Built-in Objects><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Module>namespace</Module><Normal Text> </Normal Text><Types>Debug</Types><Normal Text> {</Normal Text><br/>
<Normal Text>    </Normal Text><Module>export</Module><Normal Text> </Normal Text><Reserved>declare</Reserved><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Name>assert</Function Name><Normal Text>(</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>unknown</Types><Symbol>,</Symbol><Normal Text> </Normal Text><Parameter>message</Parameter><Symbol>?</Symbol><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Module>export</Module><Normal Text> </Normal Text><Reserved>declare</Reserved><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Function Name>assertDefined</Function Name><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>asserts</Keyword><Normal Text> </Normal Text><Normal Text>value </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Built-in Objects>NonNullable</Built-in Objects><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Only highlight valid regular expressions, of a single line, after strings</Comment><br/>
<Comment>// See: https://github.com/microsoft/TypeScript-TmLanguage/issues/786</Comment><br/>
<String>"text"</String><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text>No</Normal Text><Symbol>-</Symbol><Normal Text>Regex</Normal Text><br/>
<String>"text"</String><Normal Text> </Normal Text><Regular Expression>/Regex</Regular Expression><Pattern Character Class>[:)]</Pattern Character Class><Pattern Internal Operator>*</Pattern Internal Operator><Regular Expression>/</Regular Expression><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"6"</String><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>b </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Symbol>;</Symbol><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><String>"4"</String><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><String>"2"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// 2</Comment><br/>
<Comment>// Single quote</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>'6'</String><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>b </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Symbol>;</Symbol><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><String>'4'</String><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><String>'2'</String><Normal Text>)</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// 2</Comment><br/>
<Comment>// Template</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Template>`6`</Template><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>b </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Symbol>;</Symbol><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><Template>`4`</Template><Normal Text> </Normal Text><Symbol>/</Symbol><Normal Text> </Normal Text><Template>`2`</Template><Normal Text>)</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// 2</Comment><br/>
<Normal Text></Normal Text><br/>
<Normal Text> [</Normal Text><Decimal>1</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>3</Decimal><Normal Text>]</Normal Text><Symbol>.</Symbol><Function Name>reduce</Function Name><Symbol><</Symbol><Reserved>readonly</Reserved><Normal Text> </Normal Text><Types>number</Types><Normal Text>[]</Normal Text><Symbol>></Symbol><Normal Text>((</Normal Text><Normal Text>previous</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>previous</Normal Text><Symbol>,</Symbol><Normal Text> [])</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Multiline arrow assignment</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>h </Normal Text><Symbol>=</Symbol><Normal Text> {</Normal Text><br/>
<Normal Text>  </Normal Text><Parameter>setSubProperty</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><br/>
<Normal Text>      </Normal Text><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>A</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>      </Normal Text><Normal Text>K </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Keyword>keyof</Keyword><Normal Text> </Normal Text><Normal Text>T</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>      </Normal Text><Normal Text>J </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Keyword>keyof</Keyword><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>[</Normal Text><Normal Text>K</Normal Text><Normal Text>]</Normal Text><br/>
<Normal Text>    </Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><br/>
<Normal Text>      </Normal Text><Parameter>property</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>K</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>      </Normal Text><Parameter>key</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>J</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>      </Normal Text><Parameter>value</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>[</Normal Text><Normal Text>K</Normal Text><Normal Text>][</Normal Text><Normal Text>J</Normal Text><Normal Text>]</Normal Text><br/>
<Normal Text>    ) </Normal Text><Special Operators>=></Special Operators><Normal Text>  {}</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Private-Named Instance Fields</Comment><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Greeter </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    #</Normal Text><Parameter>name</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Reserved>constructor</Reserved><Normal Text>(</Normal Text><Parameter>name</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) {</Normal Text><br/>
<Normal Text>        </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>name</Object Member><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>name</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    }</Normal Text><br/>
<Normal Text>    </Normal Text><Function Name>greet</Function Name><Normal Text>() {</Normal Text><br/>
<Normal Text>        </Normal Text><Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><Template>`hello </Template><Substitution>${</Substitution><Keyword>this</Keyword><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>name</Object Member><Substitution>}</Substitution><Template>`</Template><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    }</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Test </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    #</Normal Text><Parameter>NAME1</Parameter><Symbol>:</Symbol><Normal Text> () </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Types>string</Types><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Normal Text>prop1 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>x</Objects><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>NAMEabc</Object Member><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>NAMEabc</Object Member><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Normal Text>prop2 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Objects>x</Objects><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>NAMEabc</Object Member><Symbol>.</Symbol><Normal Text>#</Normal Text><Function Name>NAMEabc</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Normal Text>prop3 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>this</Keyword><Symbol>.</Symbol><Normal Text>#</Normal Text><Object Member>NAMEabc</Object Member><Symbol>.</Symbol><Normal Text>#</Normal Text><Function Name>NAME</Function Name><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Type-only imports and exports</Comment><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> </Normal Text><Normal Text>T </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"mod"</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> { </Normal Text><Normal Text>U</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>V </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"mod"</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Module>as</Module><Normal Text> </Normal Text><Normal Text>types </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"mod"</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"mod"</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> </Normal Text><Symbol>=</Symbol><Keyword> require</Keyword><Normal Text>(</Normal Text><String>"mod"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Module>type</Module><Normal Text> </Normal Text><Normal Text>T </Normal Text><Symbol>=</Symbol><Keyword> require</Keyword><Normal Text>(</Normal Text><String>"mod"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Module>export</Module><Normal Text> { </Normal Text><Normal Text>a </Normal Text><Module>as</Module><Normal Text> </Normal Text><Normal Text>b</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>x </Normal Text><Normal Text>}</Normal Text><Symbol>;</Symbol><br/>
<Module>export</Module><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"AnotherModule"</String><Symbol>;</Symbol><br/>
<Module>export</Module><Normal Text> { </Normal Text><Normal Text>k </Normal Text><Module>as</Module><Normal Text> </Normal Text><Normal Text>m</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>l </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"AnotherModule"</String><Symbol>;</Symbol><br/>
<Module>export type</Module><Normal Text> { </Normal Text><Normal Text>T </Normal Text><Normal Text>}</Normal Text><Symbol>;</Symbol><br/>
<Module>export type</Module><Normal Text> { </Normal Text><Normal Text>U </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>"AnotherModule"</String><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// 'awaited' type operator: https://github.com/microsoft/TypeScript/pull/35998</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>v1</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>awaited</Keyword><Normal Text> </Normal Text><Types>number</Types><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>v2</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>awaited</Keyword><Normal Text> </Normal Text><Built-in Objects>Promise</Built-in Objects><Symbol><</Symbol><Types>number</Types><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>f7</Function Declaration><Symbol><</Symbol><Normal Text>U</Normal Text><Symbol>></Symbol><Normal Text>() {</Normal Text><br/>
<Normal Text>    </Normal Text><Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>v0</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>awaited</Keyword><Normal Text> </Normal Text><Normal Text>U</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Reserved>let</Reserved><Normal Text> </Normal Text><Parameter>v1</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>awaited</Keyword><Normal Text> </Normal Text><Built-in Objects>Promise</Built-in Objects><Symbol><</Symbol><Normal Text>U</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tagged template literals</Comment><br/>
<Function Name>tagFunc</Function Name><Template>`</Template><br/>
<Template>    Hello world!</Template><br/>
<Template>    </Template><Substitution>${</Substitution><Normal Text> </Normal Text><Function Name>alert</Function Name><Normal Text>(</Normal Text><String>"Hello!"</String><Normal Text>)</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Substitution>}</Substitution><Template>`</Template><Symbol>;</Symbol><br/>
<Objects>obj</Objects><Symbol>.</Symbol><Object Member>something</Object Member><Symbol>.</Symbol><Function Name>tagFunc</Function Name><Template>`Setting </Template><Substitution>${</Substitution><Normal Text>setting</Normal Text><Substitution>}</Substitution><Template> is </Template><Substitution>${</Substitution><Normal Text>value </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Substitution>}</Substitution><Template>!`</Template><Symbol>;</Symbol><br/>
