File indexing completed on 2024-05-19 15:23:17

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>test.ts</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (TypeScript) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#7a7c7d;">/// </span><span style="font-weight:bold;">&lt;reference</span><span style="color:#27ae60;"> types=</span><span style="color:#2980b9;">&quot;node&quot;</span><span style="color:#27ae60;"> </span><span style="font-weight:bold;">/&gt;</span>
0008 
0009 <span style="color:#7a7c7d;">// TypeScript Test</span>
0010 
0011 <span style="font-weight:bold;font-style:italic;">class</span> Student {
0012     fullName<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0013     <span style="font-weight:bold;font-style:italic;">constructor</span>(<span style="font-weight:bold;font-style:italic;">public</span> firstName<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;font-style:italic;">public</span> middleInitial<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;font-style:italic;">public</span> lastName<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>) {
0014         <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#2980b9;">fullName</span> <span style="color:#3f8058;">=</span> firstName <span style="color:#3f8058;">+</span> <span style="color:#f44f4f;">&quot; &quot;</span> <span style="color:#3f8058;">+</span> middleInitial <span style="color:#3f8058;">+</span> <span style="color:#f44f4f;">&quot; &quot;</span> <span style="color:#3f8058;">+</span> lastName<span style="color:#3f8058;">;</span>
0015     }
0016 }
0017 
0018 <span style="font-weight:bold;font-style:italic;">interface</span> Person {
0019     firstName<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0020     lastName<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0021 }
0022 
0023 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">greeter</span>(person <span style="color:#3f8058;">:</span> Person) {
0024     <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#f44f4f;">&quot;Hello, &quot;</span> <span style="color:#3f8058;">+</span> person<span style="color:#3f8058;">.</span><span style="color:#2980b9;">firstName</span> <span style="color:#3f8058;">+</span> <span style="color:#f44f4f;">&quot; &quot;</span> <span style="color:#3f8058;">+</span> person<span style="color:#3f8058;">.</span><span style="color:#2980b9;">lastName</span><span style="color:#3f8058;">;</span>
0025 }
0026 
0027 <span style="font-weight:bold;font-style:italic;">let</span> user <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">new</span> <span style="color:#8e44ad;">Student</span>(<span style="color:#f44f4f;">&quot;Jane&quot;</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">&quot;M.&quot;</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">&quot;User&quot;</span>)<span style="color:#3f8058;">;</span>
0028 
0029 <span style="color:#7a7c7d;">// Built-in</span>
0030 <span style="color:#7f8c8d;">document</span><span style="color:#3f8058;">.</span><span style="color:#2980b9;font-style:italic;">body</span><span style="color:#3f8058;">.</span><span style="color:#2980b9;font-style:italic;">innerHTML</span> <span style="color:#3f8058;">=</span> <span style="color:#8e44ad;">greeter</span>(user)<span style="color:#3f8058;">;</span> to
0031 <span style="color:#7f8c8d;">JSON</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">stringify</span>()
0032 <span style="color:#7f8c8d;">console</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">log</span>(<span style="color:#f44f4f;">&quot;Hello world&quot;</span>)<span style="color:#3f8058;">;</span>
0033 <span style="font-weight:bold;">const</span> os <span style="color:#3f8058;">=</span> <span style="color:#27ae60;">require</span>(<span style="color:#f44f4f;">'os'</span>)<span style="color:#3f8058;">;</span>
0034 <span style="color:#7f8c8d;">Math</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;font-weight:bold;">LOG10E</span><span style="color:#3f8058;">;</span>
0035 <span style="color:#7f8c8d;">Number</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;font-weight:bold;">MAX_SAFE_INTEGER</span><span style="color:#3f8058;">;</span>
0036 <span style="color:#7f8c8d;">String</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">raw</span><span style="color:#da4453;">`raw text \.\n${}`</span>
0037 
0038 <span style="color:#27ae60;">import</span> http <span style="color:#3f8058;">=</span><span style="font-weight:bold;"> require</span>(<span style="color:#f44f4f;">&quot;http&quot;</span>)<span style="color:#3f8058;">;</span>
0039 <span style="color:#27ae60;">import</span> path <span style="color:#3f8058;">=</span><span style="font-weight:bold;"> require</span>(<span style="color:#f44f4f;">&quot;path&quot;</span>)<span style="color:#3f8058;">;</span>
0040 <span style="color:#27ae60;">import</span> URL <span style="color:#3f8058;">=</span> url<span style="color:#3f8058;">.</span><span style="color:#2980b9;">URL</span><span style="color:#3f8058;">;</span>
0041 <span style="color:#27ae60;">import</span> { Readable<span style="color:#3f8058;">,</span> Writable } <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;stream&quot;</span><span style="color:#3f8058;">;</span>
0042 <span style="color:#27ae60;">import</span> { isBuffer<span style="color:#3f8058;">,</span> isString<span style="color:#3f8058;">,</span> isObject } <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;util&quot;</span><span style="color:#3f8058;">;</span>
0043 
0044 <span style="font-weight:bold;">const</span> port <span style="color:#3f8058;">=</span> <span style="color:#f67400;">8__88___8</span><span style="color:#3f8058;">;</span>
0045 <span style="font-weight:bold;">const</span> baseUrl <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">new</span> <span style="color:#8e44ad;">URL</span>(<span style="color:#da4453;">`http://localhost:</span><span style="color:#3daee9;">${</span>port<span style="color:#3daee9;">}</span><span style="color:#da4453;">/`</span>)<span style="color:#3f8058;">;</span>
0046 <span style="font-weight:bold;">const</span> rootDir <span style="color:#3f8058;">=</span> path<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">dirname</span>(<span style="color:#7f8c8d;">__dirname</span>)<span style="color:#3f8058;">;</span>
0047 
0048 <span style="font-weight:bold;">const</span> defaultBrowser <span style="color:#3f8058;">=</span> os<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">platform</span>() <span style="color:#3f8058;">===</span> <span style="color:#f44f4f;">&quot;win32&quot;</span> <span style="color:#3f8058;">?</span> <span style="color:#f44f4f;">&quot;edge&quot;</span> <span style="color:#3f8058;">:</span> <span style="color:#f44f4f;">&quot;chrome&quot;</span><span style="color:#3f8058;">;</span>
0049 <span style="font-weight:bold;font-style:italic;">let</span> browser<span style="color:#3f8058;">:</span> <span style="color:#f44f4f;">&quot;edge&quot;</span> <span style="color:#3f8058;">|</span> <span style="color:#f44f4f;">&quot;chrome&quot;</span> <span style="color:#3f8058;">|</span> <span style="color:#f44f4f;">&quot;none&quot;</span> <span style="color:#3f8058;">=</span> defaultBrowser<span style="color:#3f8058;">;</span>
0050 <span style="font-weight:bold;font-style:italic;">let</span> grep<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> <span style="color:#3f8058;">|</span> <span style="color:#2980b9;">undefined</span><span style="color:#3f8058;">;</span>
0051 
0052 <span style="font-weight:bold;font-style:italic;">interface</span> FileBasedTestConfiguration {
0053     [setting<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>]<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0054 }
0055 
0056 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">swapCase</span>(s<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>)<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> {
0057     <span style="color:#fdbc4b;font-weight:bold;">return</span> s<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">replace</span>(<span style="color:#da4453;">/</span><span style="color:#3daee9;">\w</span><span style="color:#da4453;">/g</span><span style="color:#3f8058;">,</span> (ch) <span style="font-weight:bold;">=&gt;</span> {
0058         <span style="font-weight:bold;">const</span> up <span style="color:#3f8058;">=</span> ch<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">toUpperCase</span>()<span style="color:#3f8058;">;</span>
0059         <span style="color:#fdbc4b;font-weight:bold;">return</span> ch <span style="color:#3f8058;">===</span> up <span style="color:#3f8058;">?</span> ch<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">toLowerCase</span>() <span style="color:#3f8058;">:</span> up<span style="color:#3f8058;">;</span>
0060     })<span style="color:#3f8058;">;</span>
0061 }
0062 
0063 <span style="color:#fdbc4b;font-weight:bold;">for</span> (<span style="font-weight:bold;">var</span> i <span style="font-weight:bold;">in</span> pieces) {
0064     <span style="color:#fdbc4b;font-weight:bold;">switch</span> (<span style="font-weight:bold;">true</span>) {
0065         <span style="color:#fdbc4b;font-weight:bold;">case</span> <span style="color:#da4453;">/</span><span style="color:#3daee9;">^\&quot;?</span><span style="color:#da4453;">Accession</span><span style="color:#3daee9;">\&quot;?</span><span style="color:#da4453;">/</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">test</span>(pieces[i])<span style="color:#3f8058;">:</span>
0066             numeration[<span style="color:#f67400;">0</span>] <span style="color:#3f8058;">=</span> i<span style="color:#3f8058;">;</span>
0067             <span style="color:#fdbc4b;font-weight:bold;">break</span><span style="color:#3f8058;">;</span>
0068     }
0069 }
0070 
0071 <span style="font-weight:bold;">const</span> <span style="font-weight:bold;font-style:italic;">enum</span> ResponseCode {
0072     Success <span style="color:#3f8058;">=</span> <span style="color:#f67400;">200</span><span style="color:#3f8058;">,</span>
0073     BadRequest <span style="color:#3f8058;">=</span> <span style="color:#f67400;">400</span>
0074 }
0075 
0076 <span style="color:#7a7c7d;">// Substitutions</span>
0077 <span style="color:#27ae60;">export</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">isInOpenInterval</span>(start<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span><span style="color:#3f8058;">,</span> end<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span>) {
0078     <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#8e44ad;">tersible</span>(a <span style="font-weight:bold;">=&gt;</span> a <span style="color:#3f8058;">&gt;</span> start <span style="color:#3f8058;">&amp;&amp;</span> a <span style="color:#3f8058;">&lt;</span> end<span style="color:#3f8058;">,</span> () <span style="font-weight:bold;">=&gt;</span> <span style="color:#da4453;">`(</span><span style="color:#3daee9;">${</span>start<span style="color:#3daee9;">}</span><span style="color:#da4453;">...</span><span style="color:#3daee9;">${</span>end<span style="color:#3daee9;">}</span><span style="color:#da4453;">)`</span>)
0079 }
0080 <span style="font-weight:bold;">const</span> bar <span style="color:#3f8058;">=</span> <span style="color:#da4453;">`</span><span style="color:#3daee9;">${</span>x<span style="color:#3daee9;">}</span><span style="color:#da4453;"> </span><span style="color:#3daee9;">${</span>y<span style="color:#3daee9;">}</span><span style="color:#da4453;">`</span><span style="color:#3f8058;">;</span>
0081 
0082 <span style="color:#7a7c7d;">// readonly</span>
0083 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">f1</span>(mt<span style="color:#3f8058;">:</span> [<span style="color:#2980b9;">number</span><span style="color:#3f8058;">,</span> <span style="color:#2980b9;">number</span>]<span style="color:#3f8058;">,</span> rt<span style="color:#3f8058;">:</span> <span style="font-weight:bold;font-style:italic;">readonly</span> [<span style="color:#2980b9;">number</span><span style="color:#3f8058;">,</span> <span style="color:#2980b9;">number</span>]) {
0084 }
0085 
0086 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">f2</span>(ma<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>[]<span style="color:#3f8058;">,</span> ra<span style="color:#3f8058;">:</span> <span style="font-weight:bold;font-style:italic;">readonly</span> <span style="color:#2980b9;">string</span>[]<span style="color:#3f8058;">,</span> mt<span style="color:#3f8058;">:</span> [<span style="color:#2980b9;">string</span><span style="color:#3f8058;">,</span> <span style="color:#2980b9;">string</span>]<span style="color:#3f8058;">,</span> rt<span style="color:#3f8058;">:</span> <span style="font-weight:bold;font-style:italic;">readonly</span> [<span style="color:#2980b9;">string</span><span style="color:#3f8058;">,</span> <span style="color:#2980b9;">string</span>]) {
0087 }
0088 
0089 <span style="font-weight:bold;font-style:italic;">type</span> ReadWrite<span style="color:#3f8058;">&lt;</span>T<span style="color:#3f8058;">&gt;</span> <span style="color:#3f8058;">=</span> { <span style="color:#3f8058;">-</span><span style="font-weight:bold;font-style:italic;">readonly</span> [P <span style="font-weight:bold;">in</span> <span style="font-weight:bold;">keyof</span> T] <span style="color:#3f8058;">:</span> T[P] }<span style="color:#3f8058;">;</span>
0090 
0091 <span style="color:#7a7c7d;">// const assertion</span>
0092 <span style="font-weight:bold;font-style:italic;">let</span> obj <span style="color:#3f8058;">=</span> { x<span style="color:#3f8058;">:</span> <span style="color:#f67400;">10</span><span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">:</span> [<span style="color:#f67400;">20</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">30</span>]<span style="color:#3f8058;">,</span> z<span style="color:#3f8058;">:</span> { a<span style="color:#3f8058;">:</span> { b<span style="color:#3f8058;">:</span> <span style="color:#f67400;">42</span> } } } <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span><span style="color:#3f8058;">;</span>
0093 <span style="font-weight:bold;font-style:italic;">let</span> r2 <span style="color:#3f8058;">=</span> { x<span style="color:#3f8058;">:</span> <span style="color:#f67400;">20</span><span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">:</span> <span style="color:#f67400;">10</span> } <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span><span style="color:#3f8058;">;</span>
0094 <span style="font-weight:bold;font-style:italic;">let</span> r2 <span style="color:#3f8058;">=</span> {<span style="color:#3f8058;">...</span>p} <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span><span style="color:#3f8058;">;</span>
0095 <span style="font-weight:bold;font-style:italic;">let</span> p1 <span style="color:#3f8058;">=</span> { x<span style="color:#3f8058;">:</span> <span style="color:#f67400;">10</span><span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">:</span> <span style="color:#f67400;">20</span> <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span> }<span style="color:#3f8058;">;</span>
0096 <span style="font-weight:bold;font-style:italic;">let</span> p2 <span style="color:#3f8058;">=</span> { <span style="color:#f67400;">10</span> <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">'foo'</span> <span style="color:#27ae60;">as</span> <span style="font-weight:bold;">const</span> }<span style="color:#3f8058;">;</span>
0097 
0098 <span style="color:#7a7c7d;">// Definite assignment operator</span>
0099 <span style="font-weight:bold;font-style:italic;">class</span> Cl {
0100     one<span style="color:#3f8058;">?</span><span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0101     two<span style="color:#3f8058;">!</span><span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0102 }
0103 <span style="font-weight:bold;font-style:italic;">let</span> x<span style="color:#3f8058;">!</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1</span><span style="color:#3f8058;">;</span>
0104 
0105 <span style="color:#7a7c7d;">// Function with multiple arguments</span>
0106 <span style="font-weight:bold;">const</span> children <span style="color:#3f8058;">=</span> []<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">map</span><span style="color:#3f8058;">&lt;</span><span style="color:#7f8c8d;">Set</span><span style="color:#3f8058;">&lt;</span><span style="color:#7f8c8d;">Map</span><span style="color:#3f8058;">&lt;</span><span style="color:#2980b9;">number</span><span style="color:#3f8058;">,</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">&gt;&gt;&gt;</span>(element <span style="font-weight:bold;">=&gt;</span> {
0107     <span style="color:#fdbc4b;font-weight:bold;">if</span> (<span style="color:#3f8058;">!</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#2980b9;">identityProvider</span>) {
0108         <span style="color:#fdbc4b;font-weight:bold;">return</span> element<span style="color:#3f8058;">;</span>
0109     }
0110     <span style="color:#fdbc4b;font-weight:bold;">return</span> element<span style="color:#3f8058;">;</span>
0111 })<span style="color:#3f8058;">;</span>
0112 
0113 <span style="color:#7a7c7d;">// Numerics</span>
0114 <span style="font-weight:bold;">var</span> a <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0xA</span><span style="color:#3f8058;">;</span>
0115 <span style="font-weight:bold;">var</span> b <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0b1</span><span style="color:#3f8058;">;</span>
0116 <span style="font-weight:bold;">var</span> c <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0o7</span><span style="color:#3f8058;">;</span>
0117 <span style="font-weight:bold;">var</span> d <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1.1E+3</span><span style="color:#3f8058;">;</span>
0118 <span style="font-weight:bold;">var</span> e <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1.E+3</span><span style="color:#3f8058;">;</span>
0119 <span style="font-weight:bold;">var</span> f <span style="color:#3f8058;">=</span> <span style="color:#f67400;">.1E+3</span><span style="color:#3f8058;">;</span>
0120 <span style="font-weight:bold;">var</span> g <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1E+3</span><span style="color:#3f8058;">;</span>
0121 <span style="font-weight:bold;">var</span> h <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1.1</span><span style="color:#3f8058;">;</span>
0122 <span style="font-weight:bold;">var</span> i <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1.</span><span style="color:#3f8058;">;</span>
0123 <span style="font-weight:bold;">var</span> j <span style="color:#3f8058;">=</span> <span style="color:#f67400;">.1</span><span style="color:#3f8058;">;</span>
0124 <span style="font-weight:bold;">var</span> k <span style="color:#3f8058;">=</span>  <span style="color:#f67400;">1</span><span style="color:#3f8058;">;</span>
0125 <span style="font-weight:bold;">var</span> l <span style="color:#3f8058;">=</span> <span style="color:#f67400;">1__.e+3_22</span> <span style="color:#3f8058;">|</span> <span style="color:#f67400;">.2____e2</span> <span style="color:#3f8058;">|</span> <span style="color:#f67400;">0o1_23</span> <span style="color:#3f8058;">|</span> <span style="color:#f67400;">11__.</span> <span style="color:#3f8058;">;</span>
0126 
0127 <span style="color:#7a7c7d;">// Bigint</span>
0128 <span style="font-weight:bold;">const</span> binBig <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0b101</span>n<span style="color:#3f8058;">;</span>
0129 <span style="font-weight:bold;">const</span> octBig <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0o567</span>n<span style="color:#3f8058;">;</span>
0130 <span style="font-weight:bold;">const</span> hexBig <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0xC0B</span>n<span style="color:#3f8058;">;</span>
0131 <span style="font-weight:bold;">const</span> decBig <span style="color:#3f8058;">=</span> <span style="color:#f67400;">123</span>n<span style="color:#3f8058;">;</span>
0132 
0133 <span style="color:#7a7c7d;">// Types</span>
0134 <span style="font-weight:bold;font-style:italic;">let</span> a<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">null</span> <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">null</span><span style="color:#3f8058;">;</span>
0135 <span style="font-weight:bold;font-style:italic;">let</span> b<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">123</span><span style="color:#3f8058;">;</span>
0136 <span style="font-weight:bold;font-style:italic;">let</span> c<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">123.456</span><span style="color:#3f8058;">;</span>
0137 <span style="font-weight:bold;font-style:italic;">let</span> d<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> <span style="color:#3f8058;">=</span> <span style="color:#da4453;">`Geeks`</span><span style="color:#3f8058;">;</span>
0138 <span style="font-weight:bold;font-style:italic;">let</span> e<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">undefined</span> <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">undefined</span><span style="color:#3f8058;">;</span>
0139 <span style="font-weight:bold;font-style:italic;">let</span> f<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">boolean</span> <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">true</span><span style="color:#3f8058;">;</span>
0140 <span style="font-weight:bold;font-style:italic;">let</span> g<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0b111001</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Binary</span>
0141 <span style="font-weight:bold;font-style:italic;">let</span> h<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0o436</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Octal</span>
0142 <span style="font-weight:bold;font-style:italic;">let</span> i<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">0xadf0d</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Hexa-Decimal</span>
0143 <span style="font-weight:bold;font-style:italic;">let</span> j<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">bigint</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">123</span>n<span style="color:#3f8058;">;</span>
0144 
0145 <span style="font-weight:bold;">const</span> query <span style="color:#3f8058;">=</span> <span style="color:#8e44ad;">query</span><span style="color:#3f8058;">&lt;</span>[<span style="color:#2980b9;">number</span>]<span style="color:#3f8058;">,</span> <span style="color:#2980b9;">number</span><span style="color:#3f8058;">&gt;</span>(<span style="color:#da4453;">`</span>
0146 <span style="color:#da4453;">        SELECT *</span>
0147 <span style="color:#da4453;">        FROM statistics</span>
0148 <span style="color:#da4453;">        WHERE unit_id = $1`</span>)
0149 
0150 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">runQuery</span>() {
0151     <span style="font-weight:bold;">const</span> query <span style="color:#3f8058;">=</span> <span style="color:#8e44ad;">createQuery</span><span style="color:#3f8058;">&lt;</span>[<span style="color:#2980b9;">number</span>[]]<span style="color:#3f8058;">,</span> Table<span style="color:#3f8058;">&lt;</span>Columns<span style="color:#3f8058;">&gt;&gt;</span>(<span style="color:#da4453;">`</span>
0152 <span style="color:#da4453;">        some SQL here</span>
0153 <span style="color:#da4453;">    `</span>)
0154     <span style="color:#fdbc4b;font-weight:bold;">return</span> database<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">execute</span>(query)
0155 }
0156 
0157 aa<span style="color:#3f8058;">:</span> <span style="color:#3f8058;">&lt;</span>sdf<span style="color:#3f8058;">/</span><span style="color:#3f8058;">&gt;</span> <span style="color:#2980b9;">string</span> <span style="color:#3f8058;">?&lt;</span>ssd<span style="color:#3f8058;">/</span><span style="color:#3f8058;">&gt;</span> <span style="color:#2980b9;">string</span>
0158  string <span style="color:#7a7c7d;">// Don't highlight</span>
0159 aa<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> assa <span style="color:#3f8058;">|</span>
0160    <span style="color:#2980b9;">string</span>
0161    string <span style="color:#3f8058;">;</span>
0162    string
0163 
0164 aa<span style="color:#3f8058;">:</span> { <span style="color:#2980b9;">string</span>
0165     string } <span style="color:#7a7c7d;">// Don't highlight</span>
0166 
0167 aa<span style="color:#3f8058;">:</span> [ <span style="color:#2980b9;">string</span>
0168       <span style="color:#2980b9;">string</span> ]
0169 aa<span style="color:#3f8058;">:</span> ( <span style="color:#2980b9;">string</span>
0170       string ) <span style="color:#7a7c7d;">// Don't highlight</span>
0171 aa<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> <span style="color:#3f8058;">&lt;</span><span style="color:#2980b9;">string</span><span style="color:#3f8058;">&gt;</span>
0172 <span style="font-weight:bold;font-style:italic;">interface</span> a {
0173     aa<span style="color:#3f8058;">:</span> <span style="color:#7a7c7d;">/* comment</span>
0174 <span style="color:#7a7c7d;">        */</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">,</span>
0175     bb<span style="color:#3f8058;">:</span> <span style="color:#7a7c7d;">/* comment */</span>
0176         <span style="color:#2980b9;">number</span><span style="color:#3f8058;">,</span>
0177     cc<span style="color:#3f8058;">:</span> <span style="color:#7a7c7d;">// comment</span>
0178         <span style="color:#2980b9;">void</span><span style="color:#3f8058;">,</span>
0179     dd<span style="color:#3f8058;">:</span>
0180         <span style="color:#2980b9;">any</span><span style="color:#3f8058;">,</span>
0181 }
0182 
0183 <span style="font-weight:bold;">null</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">&lt;</span>{[key]<span style="color:#3f8058;">:</span> () <span style="font-weight:bold;">=&gt;</span> <span style="color:#2980b9;">any</span>}<span style="color:#3f8058;">&gt;</span> <span style="font-weight:bold;">null</span>
0184 <span style="font-weight:bold;">null</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">&lt;</span>{[key]<span style="color:#3f8058;">:</span> () <span style="font-weight:bold;">=&gt;</span>{a<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">number</span>}}<span style="color:#3f8058;">&gt;</span> <span style="font-weight:bold;">null</span>
0185 
0186 <span style="color:#7a7c7d;">// Correctly highlighting regular expressions</span>
0187 dt <span style="color:#3f8058;">=</span> ((dt[<span style="color:#f67400;">0</span>] <span style="color:#3f8058;">*</span> <span style="color:#f67400;">1e9</span> <span style="color:#3f8058;">+</span> dt[<span style="color:#f67400;">1</span>]) <span style="color:#3f8058;">/</span> <span style="color:#f67400;">1e6</span>)<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">toFixed</span>(<span style="color:#f67400;">3</span>)<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">replace</span>(<span style="color:#da4453;">/</span><span style="color:#3daee9;">\.?</span><span style="color:#da4453;">0</span><span style="color:#3daee9;">+$</span><span style="color:#da4453;">/</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">''</span>) <span style="color:#3f8058;">+</span> <span style="color:#f44f4f;">'ms'</span><span style="color:#3f8058;">;</span>
0188 (a[<span style="color:#f67400;">0</span>] <span style="color:#3f8058;">/</span> <span style="color:#f67400;">2</span>) <span style="color:#3f8058;">/</span> (<span style="color:#f67400;">2</span>)
0189 
0190 <span style="color:#7a7c7d;">// Type guards</span>
0191 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">isNumber</span>(x<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">any</span>)<span style="color:#3f8058;">:</span> x <span style="font-weight:bold;">is</span> <span style="color:#2980b9;">number</span> {
0192     <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="font-weight:bold;">typeof</span> x <span style="color:#3f8058;">===</span> <span style="color:#f44f4f;">&quot;number&quot;</span><span style="color:#3f8058;">;</span>
0193 }
0194 
0195 <span style="color:#7a7c7d;">// Conditional expressions (highlight keywords before &quot;:&quot;)</span>
0196 <span style="font-weight:bold;font-style:italic;">class</span> C {
0197     w <span style="color:#3f8058;">=</span> () <span style="font-weight:bold;">=&gt;</span>
0198         <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">a</span>() <span style="color:#3f8058;">?</span> <span style="font-weight:bold;">true</span> <span style="color:#3f8058;">:</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">b</span>() <span style="color:#3f8058;">?</span> <span style="font-weight:bold;">false</span> <span style="color:#3f8058;">:</span> <span style="font-weight:bold;">true</span><span style="color:#3f8058;">;</span>
0199     z <span style="color:#3f8058;">=</span> () <span style="font-weight:bold;">=&gt;</span>
0200         <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">b</span>() <span style="color:#3f8058;">?</span> hello <span style="color:#3f8058;">:</span> k<span style="color:#3f8058;">;</span>
0201 }
0202 
0203 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">foo</span><span style="color:#3f8058;">&lt;</span>T <span style="font-weight:bold;font-style:italic;">extends</span> X<span style="color:#3f8058;">&gt;</span>(arg<span style="color:#3f8058;">:</span> T)<span style="color:#3f8058;">:</span> T <span style="font-weight:bold;font-style:italic;">extends</span> B <span style="color:#3f8058;">?</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span> {
0204   <span style="color:#fdbc4b;font-weight:bold;">if</span> (arg <span style="color:#3f8058;">===</span> <span style="color:#f44f4f;">&quot;A&quot;</span>) <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">&lt;</span>T <span style="font-weight:bold;font-style:italic;">extends</span> B <span style="color:#3f8058;">?</span> <span style="color:#2980b9;">number</span> <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">never</span><span style="color:#3f8058;">&gt;</span><span style="color:#f67400;">111</span><span style="color:#3f8058;">;</span>
0205   <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">&lt;</span>T <span style="font-weight:bold;font-style:italic;">extends</span> B <span style="color:#3f8058;">?</span> <span style="color:#2980b9;">never</span> <span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">&gt;</span><span style="color:#f44f4f;">&quot;returning a string&quot;</span><span style="color:#3f8058;">;</span>
0206 }
0207 
0208 <span style="font-weight:bold;font-style:italic;">let</span> x <span style="color:#3f8058;">=</span> (foo <span style="color:#3f8058;">===</span> <span style="font-weight:bold;">null</span> <span style="color:#3f8058;">||</span> foo <span style="color:#3f8058;">===</span> <span style="font-weight:bold;">undefined</span>) <span style="color:#3f8058;">?</span>
0209     <span style="font-weight:bold;">undefined</span> <span style="color:#3f8058;">:</span>
0210     foo<span style="color:#3f8058;">.</span><span style="color:#2980b9;">bar</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">baz</span>()<span style="color:#3f8058;">;</span>
0211 <span style="font-weight:bold;font-style:italic;">let</span> y <span style="color:#3f8058;">=</span> (foo <span style="color:#3f8058;">===</span> <span style="font-weight:bold;">null</span> <span style="color:#3f8058;">||</span> foo <span style="color:#3f8058;">===</span> <span style="font-weight:bold;">undefined</span>) <span style="color:#3f8058;">?</span> <span style="color:#7a7c7d;">/* comment */</span> <span style="font-weight:bold;">undefined</span> <span style="color:#3f8058;">:</span>
0212     foo<span style="color:#3f8058;">.</span><span style="color:#2980b9;">bar</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">baz</span>()<span style="color:#3f8058;">;</span>
0213 
0214 <span style="color:#7a7c7d;">// Operator ??</span>
0215 <span style="font-weight:bold;font-style:italic;">let</span> x <span style="color:#3f8058;">=</span> foo <span style="color:#3f8058;">??</span> <span style="color:#8e44ad;">bar</span>()<span style="color:#3f8058;">;</span>
0216 
0217 <span style="color:#7a7c7d;">// Types and logical `&amp;&amp;` and `||` operators after `as` expression</span>
0218 <span style="color:#7f8c8d;">Date</span> <span style="color:#27ae60;">as</span> <span style="color:#2980b9;">any</span> <span style="color:#3f8058;">||</span> <span style="color:#2980b9;">null</span><span style="color:#3f8058;">;</span>
0219 
0220 <span style="color:#7a7c7d;">//Assertions</span>
0221 <span style="font-weight:bold;">const</span> assert<span style="color:#3f8058;">:</span> (value<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">unknown</span>) <span style="font-weight:bold;">=&gt;</span> <span style="font-weight:bold;">asserts</span> value <span style="color:#3f8058;">=</span> value <span style="font-weight:bold;">=&gt;</span> {}
0222 <span style="font-weight:bold;font-style:italic;">declare</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">assertIsString</span>(value<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">unknown</span>)<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">asserts</span> value <span style="font-weight:bold;">is</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0223 <span style="font-weight:bold;font-style:italic;">declare</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">assertIsArrayOfStrings</span>(value<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">unknown</span>)<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">asserts</span> value <span style="font-weight:bold;">is</span> <span style="color:#2980b9;">string</span>[]<span style="color:#3f8058;">;</span>
0224 <span style="font-weight:bold;font-style:italic;">declare</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">assertDefined</span><span style="color:#3f8058;">&lt;</span>T<span style="color:#3f8058;">&gt;</span>(value<span style="color:#3f8058;">:</span> T)<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">asserts</span> value <span style="font-weight:bold;">is</span> <span style="color:#7f8c8d;">NonNullable</span><span style="color:#3f8058;">&lt;</span>T<span style="color:#3f8058;">&gt;</span><span style="color:#3f8058;">;</span>
0225 <span style="color:#27ae60;">namespace</span> <span style="color:#2980b9;">Debug</span> {
0226     <span style="color:#27ae60;">export</span> <span style="font-weight:bold;font-style:italic;">declare</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">assert</span>(value<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">unknown</span><span style="color:#3f8058;">,</span> message<span style="color:#3f8058;">?</span><span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>)<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">asserts</span> value<span style="color:#3f8058;">;</span>
0227     <span style="color:#27ae60;">export</span> <span style="font-weight:bold;font-style:italic;">declare</span> <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">assertDefined</span><span style="color:#3f8058;">&lt;</span>T<span style="color:#3f8058;">&gt;</span>(value<span style="color:#3f8058;">:</span> T)<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">asserts</span> value <span style="font-weight:bold;">is</span> <span style="color:#7f8c8d;">NonNullable</span><span style="color:#3f8058;">&lt;</span>T<span style="color:#3f8058;">&gt;</span><span style="color:#3f8058;">;</span>
0228 }
0229 
0230 <span style="color:#7a7c7d;">// Only highlight valid regular expressions, of a single line, after strings</span>
0231 <span style="color:#7a7c7d;">// See: https://github.com/microsoft/TypeScript-TmLanguage/issues/786</span>
0232 <span style="color:#f44f4f;">&quot;text&quot;</span> <span style="color:#3f8058;">/</span>No<span style="color:#3f8058;">-</span>Regex
0233 <span style="color:#f44f4f;">&quot;text&quot;</span> <span style="color:#da4453;">/Regex</span><span style="color:#3daee9;">[:)]</span><span style="color:#3daee9;">*</span><span style="color:#da4453;">/</span><span style="color:#3f8058;">;</span>
0234 <span style="font-weight:bold;">const</span> a <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">&quot;6&quot;</span> <span style="color:#3f8058;">/</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">/*comment*/</span> <span style="font-weight:bold;">const</span> b <span style="color:#3f8058;">=</span> <span style="color:#f67400;">5</span><span style="color:#3f8058;">;</span>
0235 <span style="color:#7f8c8d;">console</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">log</span>(<span style="color:#f44f4f;">&quot;4&quot;</span> <span style="color:#3f8058;">/</span> <span style="color:#f44f4f;">&quot;2&quot;</span>)<span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// 2</span>
0236 <span style="color:#7a7c7d;">// Single quote</span>
0237 <span style="font-weight:bold;">const</span> a <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">'6'</span> <span style="color:#3f8058;">/</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">/*comment*/</span> <span style="font-weight:bold;">const</span> b <span style="color:#3f8058;">=</span> <span style="color:#f67400;">5</span><span style="color:#3f8058;">;</span>
0238 <span style="color:#7f8c8d;">console</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">log</span>(<span style="color:#f44f4f;">'4'</span> <span style="color:#3f8058;">/</span> <span style="color:#f44f4f;">'2'</span>)<span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// 2</span>
0239 <span style="color:#7a7c7d;">// Template</span>
0240 <span style="font-weight:bold;">const</span> a <span style="color:#3f8058;">=</span> <span style="color:#da4453;">`6`</span> <span style="color:#3f8058;">/</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">/*comment*/</span> <span style="font-weight:bold;">const</span> b <span style="color:#3f8058;">=</span> <span style="color:#f67400;">5</span><span style="color:#3f8058;">;</span>
0241 <span style="color:#7f8c8d;">console</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">log</span>(<span style="color:#da4453;">`4`</span> <span style="color:#3f8058;">/</span> <span style="color:#da4453;">`2`</span>)<span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// 2</span>
0242 
0243  [<span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">3</span>]<span style="color:#3f8058;">.</span><span style="color:#8e44ad;">reduce</span><span style="color:#3f8058;">&lt;</span><span style="font-weight:bold;font-style:italic;">readonly</span> <span style="color:#2980b9;">number</span>[]<span style="color:#3f8058;">&gt;</span>((previous) <span style="font-weight:bold;">=&gt;</span> previous<span style="color:#3f8058;">,</span> [])<span style="color:#3f8058;">;</span>
0244 
0245 <span style="color:#7a7c7d;">// Multiline arrow assignment</span>
0246 <span style="font-weight:bold;">const</span> h <span style="color:#3f8058;">=</span> {
0247   setSubProperty<span style="color:#3f8058;">:</span> <span style="color:#3f8058;">&lt;</span>
0248       T <span style="font-weight:bold;font-style:italic;">extends</span> A<span style="color:#3f8058;">,</span>
0249       K <span style="font-weight:bold;font-style:italic;">extends</span> <span style="font-weight:bold;">keyof</span> T<span style="color:#3f8058;">,</span>
0250       J <span style="font-weight:bold;font-style:italic;">extends</span> <span style="font-weight:bold;">keyof</span> T[K]
0251     <span style="color:#3f8058;">&gt;</span>(
0252       property<span style="color:#3f8058;">:</span> K<span style="color:#3f8058;">,</span>
0253       key<span style="color:#3f8058;">:</span> J<span style="color:#3f8058;">,</span>
0254       value<span style="color:#3f8058;">:</span> T[K][J]
0255     ) <span style="font-weight:bold;">=&gt;</span>  {}
0256 }
0257 
0258 <span style="color:#7a7c7d;">// Private-Named Instance Fields</span>
0259 <span style="font-weight:bold;font-style:italic;">class</span> Greeter {
0260     #name<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0261     <span style="font-weight:bold;font-style:italic;">constructor</span>(name<span style="color:#3f8058;">:</span> <span style="color:#2980b9;">string</span>) {
0262         <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">name</span> <span style="color:#3f8058;">=</span> name<span style="color:#3f8058;">;</span>
0263     }
0264     <span style="color:#8e44ad;">greet</span>() {
0265         <span style="color:#7f8c8d;">console</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;font-style:italic;">log</span>(<span style="color:#da4453;">`hello </span><span style="color:#3daee9;">${</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">name</span><span style="color:#3daee9;">}</span><span style="color:#da4453;">`</span>)<span style="color:#3f8058;">;</span>
0266     }
0267 }
0268 <span style="font-weight:bold;font-style:italic;">class</span> Test {
0269     #NAME1<span style="color:#3f8058;">:</span> () <span style="font-weight:bold;">=&gt;</span> <span style="color:#2980b9;">string</span><span style="color:#3f8058;">;</span>
0270     prop1 <span style="color:#3f8058;">=</span> x<span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">NAMEabc</span><span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">NAMEabc</span><span style="color:#3f8058;">;</span>
0271     prop2 <span style="color:#3f8058;">=</span> x<span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">NAMEabc</span><span style="color:#3f8058;">.</span>#<span style="color:#8e44ad;">NAMEabc</span>()<span style="color:#3f8058;">;</span>
0272     prop3 <span style="color:#3f8058;">=</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span>#<span style="color:#2980b9;">NAMEabc</span><span style="color:#3f8058;">.</span>#<span style="color:#8e44ad;">NAME</span>()<span style="color:#3f8058;">;</span>
0273 }
0274 
0275 <span style="color:#7a7c7d;">// Type-only imports and exports</span>
0276 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> T <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;mod&quot;</span><span style="color:#3f8058;">;</span>
0277 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> { U<span style="color:#3f8058;">,</span> V } <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;mod&quot;</span><span style="color:#3f8058;">;</span>
0278 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> <span style="color:#3f8058;">*</span> <span style="color:#27ae60;">as</span> types <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;mod&quot;</span><span style="color:#3f8058;">;</span>
0279 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;mod&quot;</span><span style="color:#3f8058;">;</span>
0280 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> <span style="color:#3f8058;">=</span><span style="font-weight:bold;"> require</span>(<span style="color:#f44f4f;">&quot;mod&quot;</span>)<span style="color:#3f8058;">;</span>
0281 <span style="color:#27ae60;">import</span> <span style="color:#27ae60;">type</span> T <span style="color:#3f8058;">=</span><span style="font-weight:bold;"> require</span>(<span style="color:#f44f4f;">&quot;mod&quot;</span>)<span style="color:#3f8058;">;</span>
0282 
0283 <span style="color:#27ae60;">export</span> { a <span style="color:#27ae60;">as</span> b<span style="color:#3f8058;">,</span> x }<span style="color:#3f8058;">;</span>
0284 <span style="color:#27ae60;">export</span> <span style="color:#3f8058;">*</span> <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;AnotherModule&quot;</span><span style="color:#3f8058;">;</span>
0285 <span style="color:#27ae60;">export</span> { k <span style="color:#27ae60;">as</span> m<span style="color:#3f8058;">,</span> l } <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;AnotherModule&quot;</span><span style="color:#3f8058;">;</span>
0286 <span style="color:#27ae60;">export type</span> { T }<span style="color:#3f8058;">;</span>
0287 <span style="color:#27ae60;">export type</span> { U } <span style="color:#27ae60;">from</span> <span style="color:#f44f4f;">&quot;AnotherModule&quot;</span><span style="color:#3f8058;">;</span>
0288 
0289 <span style="color:#7a7c7d;">// 'awaited' type operator: https://github.com/microsoft/TypeScript/pull/35998</span>
0290 <span style="font-weight:bold;font-style:italic;">let</span> v1<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">awaited</span> <span style="color:#2980b9;">number</span><span style="color:#3f8058;">;</span>
0291 <span style="font-weight:bold;font-style:italic;">let</span> v2<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">awaited</span> <span style="color:#7f8c8d;">Promise</span><span style="color:#3f8058;">&lt;</span><span style="color:#2980b9;">number</span><span style="color:#3f8058;">&gt;</span><span style="color:#3f8058;">;</span>
0292 <span style="font-weight:bold;">function</span> <span style="color:#8e44ad;">f7</span><span style="color:#3f8058;">&lt;</span>U<span style="color:#3f8058;">&gt;</span>() {
0293     <span style="font-weight:bold;font-style:italic;">let</span> v0<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">awaited</span> U<span style="color:#3f8058;">;</span>
0294     <span style="font-weight:bold;font-style:italic;">let</span> v1<span style="color:#3f8058;">:</span> <span style="font-weight:bold;">awaited</span> <span style="color:#7f8c8d;">Promise</span><span style="color:#3f8058;">&lt;</span>U<span style="color:#3f8058;">&gt;</span><span style="color:#3f8058;">;</span>
0295 }
0296 
0297 <span style="color:#7a7c7d;">// Tagged template literals</span>
0298 <span style="color:#8e44ad;">tagFunc</span><span style="color:#da4453;">`</span>
0299 <span style="color:#da4453;">    Hello world!</span>
0300 <span style="color:#da4453;">    </span><span style="color:#3daee9;">${</span> <span style="color:#8e44ad;">alert</span>(<span style="color:#f44f4f;">&quot;Hello!&quot;</span>)<span style="color:#3f8058;">;</span> <span style="color:#3daee9;">}</span><span style="color:#da4453;">`</span><span style="color:#3f8058;">;</span>
0301 obj<span style="color:#3f8058;">.</span><span style="color:#2980b9;">something</span><span style="color:#3f8058;">.</span><span style="color:#8e44ad;">tagFunc</span><span style="color:#da4453;">`Setting </span><span style="color:#3daee9;">${</span>setting<span style="color:#3daee9;">}</span><span style="color:#da4453;"> is </span><span style="color:#3daee9;">${</span>value <span style="color:#3f8058;">+</span> <span style="color:#f67400;">5</span><span style="color:#3daee9;">}</span><span style="color:#da4453;">!`</span><span style="color:#3f8058;">;</span>
0302 </pre></body></html>