Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To pile on, Typescript has been a lifesaver so far. Yes, the type system is rather complicated, but one can progressively use the advanced type, starting with typing numbers, strings, interfaces etc.

Having worked with Clojure for 4 years, and a JS (ES6 and +) codebase, static typing is amazing.

There are far fewer bugs at runtime because of incorrectly setting or forgetting to set keys in a map or a property or accidentally passing the wrong value to the property. Yes, interop with JS is a little messy, because of the dynamic nature of JS, but a large class of errors can be significantly reduced by Typescript.

As for the argument , unit tests can catch most of the problems Typescript solves, my counter is that

It reduces the amount of tests you need, to check getter/setters,types etc SIGNIFICANTLY. You can focus your unit tests on the more functional aspects than having to worry about basic property access.

All high-level languages have a learning curve. I don't expect to pick up the nuances and all the little bits of Typescript in a matter of weeks or months.It might even take years, but I think Typescript and its experimentation with providing a well typed Frontend interface is amazing !



> You can focus your unit tests on the more functional aspects than having to worry about basic property access.

Exactly! unit testing a return type is such a backword step in programming


> incorrectly setting or forgetting to set keys in a map or a property or accidentally passing the wrong value to the property

When you wrote/write Clojure, did you ever use spec? Any insights into how it compares with TS? They seem to give similar guarantees for this aspect, but I haven’t played with spec yet.


It is kinda hard to compare both, as the paradigms are quite different (FP vs OO),

spec , IMHO, seemed oriented towards validating properties and values in maps, as Hickey mentions in his talk, it is all about manipulating data.

Spec is opt-in. unless you are working with code that has already been spec-ed , you will run into the same problem that TS + JS interop has.

I found spec a little too intrusive (especially the namespaced keywords) and sometimes I wasn't sure what it was meant for, TBH.

In my first company, it was a bunch of cowboy programmer that didn't really care about typing the codebases, too cool to write unit tests and simply wrote enough end-to-end tests cases to solve the problem. I was just starting out and had NO idea on what was good programming practice.

In the second firm , we had used schema to type the codebase partially and it worked. But the type checks weren't compile time , but rather during unit tests and when running with type-checking enabled (I think this is the same for spec as well)

I think the advantage of TS comes from the static types (+ checking). You get immediate feedback before you can even compile it into javascript.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: