<story><title>From TypeScript to ReScript</title><url>https://www.greyblake.com/blog/from-typescript-to-rescript/</url></story><parent_chain><item><author>dsnr</author><text>&amp;gt; TypeScript&amp;#x27;s type system is over-complex since it tries to be a superset of JS.&lt;p&gt;This is exactly why it got so popular, and TypeScript support in the JS ecosystem is so good. It&amp;#x27;s easy to just strip the TS metadata and you&amp;#x27;re left with working JS. This is why projects like esbuild managed to ship TS support so quickly (without type-checking).
Good luck doing that with a new language.&lt;p&gt;I for one am &amp;quot;all in&amp;quot; on TypeScript, with all its shortcomings it&amp;#x27;s just the best of both worlds, and so easy to get on board.</text></item></parent_chain><comment><author>ragnese</author><text>TypeScript&amp;#x27;s biggest flaw, IMO, is that it can&amp;#x27;t (or chooses not to- I don&amp;#x27;t understand anything about JS-adjacent build systems and how they work) understand the difference between &amp;quot;code I write&amp;quot; and &amp;quot;code someone else wrote&amp;quot;.&lt;p&gt;I&amp;#x27;m not going to beat the dead horse of how unsound TypeScript&amp;#x27;s type system is. We all know that most of that is intentional because it would just be too inconvenient to work with existing JavaScript code (Aside: think about what this implies about existing JavaScript code. This makes alarm bells go off in my head).&lt;p&gt;However, why should I have to deal with an unsound type system in &lt;i&gt;my&lt;/i&gt; new, fresh, TypeScript-only code?&lt;p&gt;I&amp;#x27;m not saying it&amp;#x27;s simple or criticizing anybody&amp;#x27;s work, but it would VASTLY increase my opinion of TypeScript if I could enable some kind of &amp;#x27;truly-strict-new-code&amp;#x27; flag that would error on unsound code in the current project and maybe just warn when I &lt;i&gt;call&lt;/i&gt; unsound code from a dependency.&lt;p&gt;Because, honestly, I&amp;#x27;m truly disappointed that the one language that finally has a chance to unseat JavaScript has such a poor type system that it can&amp;#x27;t even do basic sub-type variance correctly no matter how many flags you set. Out of all of the statically typed languages I&amp;#x27;ve used, TypeScript has helped me the least when it comes to type errors.</text></comment>
<story><title>From TypeScript to ReScript</title><url>https://www.greyblake.com/blog/from-typescript-to-rescript/</url></story><parent_chain><item><author>dsnr</author><text>&amp;gt; TypeScript&amp;#x27;s type system is over-complex since it tries to be a superset of JS.&lt;p&gt;This is exactly why it got so popular, and TypeScript support in the JS ecosystem is so good. It&amp;#x27;s easy to just strip the TS metadata and you&amp;#x27;re left with working JS. This is why projects like esbuild managed to ship TS support so quickly (without type-checking).
Good luck doing that with a new language.&lt;p&gt;I for one am &amp;quot;all in&amp;quot; on TypeScript, with all its shortcomings it&amp;#x27;s just the best of both worlds, and so easy to get on board.</text></item></parent_chain><comment><author>capableweb</author><text>&amp;gt; It&amp;#x27;s easy to just strip the TS metadata and you&amp;#x27;re left with working JS.&lt;p&gt;Compared to what? JSDoc made it even easier, you didn&amp;#x27;t even need to strip anything, as the &amp;quot;types&amp;quot; were just comments. This comes with its own problems, who want to program with comments? But it didn&amp;#x27;t require any changes to use for us who want nothing to do with TS.</text></comment>