<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi devs,</p>
<p>I am looking for a mechanism to have some static methods
operating on data which can be overriden.</p>
<p>U used to do it with an overriden static member, but it seems
that TypeScript got stricter and doesn't allow that anymore.</p>
<p>How would you implement that? Is there some singleton concept in
TypeScript? <br>
</p>
<p><br>
</p>
<p>Thanks, Ondra<br>
</p>
<pre class="lang-js prettyprint prettyprinted" style=""><code><span class="kwd">
class</span><span class="pln"> A </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">static</span><span class="pln"> foo </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[-</span><span class="lit">1</span><span class="pun">];</span><span class="pln">
</span><span class="kwd">static</span><span class="pln"> getLastFoo</span><span class="pun">(){</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">foo</span><span class="pun">[</span><span class="pln">A</span><span class="pun">.</span><span class="pln">foo</span><span class="pun">.</span><span class="pln">length</span><span class="pun">-</span><span class="lit">1</span><span class="pun">];</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">class</span><span class="pln"> B extends A </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">static</span><span class="pln"> foo </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">,</span><span class="lit">3</span><span class="pun">];</span><span class="pln"> </span><span class="com">// Did this work in TS 1.8?</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
B</span><span class="pun">.</span><span class="pln">getLastFoo</span><span class="pun">();</span><span class="pln"> </span><span class="com">// <--- gives 3</span></code></pre>
<p><br>
</p>
<p>Ondra<br>
</p>
<p><br>
</p>
<pre class="moz-signature" cols="72">--
--
Ondrej Zizka, Windup project, Brno</pre>
</body>
</html>