File indexing completed on 2024-05-12 04:02:10

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