Top
Best
New

Posted by javatuts 1/11/2026

The Concise TypeScript Book(github.com)
237 points | 61 comments
SilverSlash 1/11/2026|
I don't know if I'd call a book with 61 chapters "concise".
forgotpwd16 1/11/2026||
They aren't book-length chapters. E.g. https://gibbok.github.io/typescript-book/book/strictnullchec... is one paragraph, https://gibbok.github.io/typescript-book/book/void-type/ is 1 sentence plus 1 3-line example. Near all of those "chapters" seem to be bit more than that. 1~2 paragraphs plus 1~2 code examples.
logicallee 1/11/2026||
you're not meant to scroll ahead, the intention is to create a time sink in each chapter. I figured this out after reading the first chapter forever, then I was like "wait a second this is the concise book? how can I read the introduction forever?"
raincole 1/12/2026||
I've read the introduction part and I've seen no "time sink." I genuinely don't know what your comment means. Do you really have a hard time reading the introduction part?
locknitpicker 1/11/2026||
It didn't included the JavaScript subset, so that's pretty concise.
kertoip_1 1/11/2026||
What I miss in this book is the reasoning.

https://gibbok.github.io/typescript-book/book/differences-be...

So we know there are types and interfaces. One support declaration merging, one does not. Both can extend others, but in different ways. But why? Why there are two of them? When should I use them? Is one better than the other?

derangedHorse 1/11/2026|
Determining the motivation for design decisions is outside the scope of what any external party can and/or should do. The most the author could do is echo what's in the docs (if present), or give their own guess on why things are the way they are.
anamexis 1/11/2026||
Giving guidance on which one should be used and when is well within the scope of external parties.
locknitpicker 1/11/2026||
I was wondering what is the community's opinion on the official TypeScript Handbook

https://www.typescriptlang.org/docs/handbook/intro.html

primitivesuave 1/11/2026||
I love the Typescript handbook, but wanted the examples to be "runnable". It turns out that the TypeScript compiler runs pretty fast in the browser for trivial code snippets, so I threw together https://ts.coach (TypeScript handbook with code examples that execute in the browser + instant type checking)
epolanski 1/11/2026||
This is neat, but has the same issue of all similar projects: mobile unfriendly editors for snippets editing.
primitivesuave 1/11/2026||
Thank you for the excellent feedback. I had this realization a while back that I'm a mobile user during "consumption" (e.g. browsing HN late at night), but a desktop user for "production" - now I see how it applies to this side project as well. Also, I still need to figure out some React performance issues which make it virtually unusable on pre-2020 machines :(

This comment actually invigorated me to try the site from my phone and improve the experience, so I sincerely thank you for the motivation.

epolanski 1/11/2026||
The typescript documentation has the same issue.

I've considered doing a similar project to yours writing or using some mobile friendly editor and hooking it directly into TypeScript's LSP, which can be easily added to a web page, but was never motivated/disciplined enough to push through it.

wk_end 1/11/2026|||
Speaking only for myself, not for the community:

It should be your first resource when looking something up, it's usually quite clear and often helpful, but I find it somewhat confusingly organized and rather incomplete. It's more of a reference than a tutorial or guidebook, per se.

tresil 1/11/2026|||
I show people coming from object oriented backgrounds this page first in order to correct the perception that TypeScript is best used with that programming paradigm.

https://www.typescriptlang.org/docs/handbook/typescript-in-5...

locknitpicker 1/11/2026||
> I show people coming from object oriented backgrounds this page first in order to correct the perception that TypeScript is best used with that programming paradigm.

I think you're confusing things. Languages like Java or C# impose an artificial constraint that free functions don't exist and functions can only exist as members of a class. You don't see this constraint in OO languages such as C++.

Also, it's a simplistic assertions to claim that classes have no place in TypeScript or aren't idiomatic. That's just nonsense based on specious reasoning. Classes/objects with function members are still the best way to implement some features. I'm seeing too many people writing absurd typescript code who go through great lengths to avoid a class because they think a class is taboo. They pull out convoluted stunts like passing closures as object members, just to avoid the sin of rolling out a class.

tresil 1/11/2026||
To clarify, I’m not claiming that classes have no place in Typescript. What I’m saying is that many people coming from OOP backgrounds tend to have the mistaken belief that TypeScript is best written with that paradigm. While it can be in some cases, it should not be assumed to be the best way. In fact, the documentation linked above asserts that “free functions over data” are extremely powerful, and “tend to be the preferred model for writing programs in JavaScript.”
throwthro0954 1/11/2026|||
I prefer this over everything else I've seen so far, it actually is concise.
throw_await 1/11/2026||
Good, but it only gives a very brief overview, no explanations
epolanski 1/11/2026||
I don't know, the number of people that know what a mapped or sum types are is strikingly low, let alone some of the more advanced concepts or even tsconfig.

I've always thought that typescript is in the real of technologies that developers use for years but never really master such as css. Maybe not as severe as css, but it's the same direction.

gnabgib 1/11/2026||
Popular in 2023 (215 points, 91 comments) https://news.ycombinator.com/item?id=36641634
tkiolp4 1/11/2026||
Please provide a PDF as well. I cannot read books in HTML format because I need to keep track of where i left. That means I either have to leave the browser tab open (but this is prone to accidentally closing it) or I need to bookmark every progress, which creates noise in my bookmarks. With a PDF I simply leave it, the reader remembers my last page. I also have a sense of progress with pdf.
mr_mitm 1/11/2026||
https://github.com/gibbok/typescript-book/tree/main/download...
okaram 1/11/2026||
They have a PDF in the downloads, and an epub one if you have an ebook reader like a kindle or kobo
reverseblade2 1/11/2026||
And I have this roadmap if anyone interested in

https://nemorize.com/roadmaps/typescript

dorfsmay 1/11/2026|
What's the "Sign in to study" button? Nothing happens when I click on it. If I click above it takes me to am explanation of the subject.
reverseblade2 1/11/2026|||
It should in theory allow you to answer the questions associated with the section. Let me cross check.
reverseblade2 1/11/2026||||
Yep it is broken, will be fixing 5 min.
reverseblade2 1/11/2026|||
Fixed. please retry. Thanks for reporting.
phplovesong 1/11/2026||
I know why typescript "succeeded", but always wonder what kind of web we would have if infact Haxe had become more popular for web in the early days. My guesstimate is we would have had bundlers in native code much, much earlier, and generally much faster and more robust tooling. Its only now we see projects like esbuild, and even TS being written in a compiled language (go), and other efforts in rust.

Also it would have been interesting sto ser what influence Haxe would have had on javascript itself

skybrian 1/11/2026||
I assume you meant that the TypeScript compiler is being rewritten in Go. (At first I read it as something entirely different.)
phplovesong 1/12/2026||
Indeed i ment the compiler being rewritten from JS->Go

With Haxe this would never have been a problem, as the compiler (written in ocaml) was always fast as anything out there.

Tade0 1/11/2026|||
Same could be said about Java Applets or Flash and, in a way, about Elm. We've been there and this approach doesn't work.

The creators of TypeScript realized early on that people don't need yet another ecosystem, but a migration path that won't pause development.

phplovesong 1/11/2026||
Thats true, but comes with a cost. TS has become an incredibly complex language, even it only provides types. Thats being said is will always lack features as it only "javascript".

Haxe has a more robust, but simpler typesystem, that comes from ocaml.

Haxe also compiles to C++ so making native tools would have been a breeze.

TS sits at the top chair, but there is many "better" options out there, like Elm (even its kild of a dead languge) and ReScript/ReasonML etc.

TS is good, but will never be a perfect language for javascript. It will always be a mediocre option, that is growing more and more complex in every new release.

Tade0 1/11/2026||
Yes, amazing language - I recall having a look at it in 2013 when I was scrambling for a replacement for Flash (also amazing platform). Shame it doesn't solve the problem at hand.

Hardly anyone cares TypeScript isn't perfect when they can migrate their (or anyone else's) terrible, but business-critial JS library to TS and continue development without skipping a beat.

For the same reason ReasonML took years to overtake fartscroll.js in the number of stars on GitHub.

A huge part of TS's complexity is there so that library authors can describe some exotic behaviours seen normally only in dynamically-typed languages. When you're writing an app you don't need the vast majority of those features. Personally I regret every usage of `infer` in application code.

Timon3 1/11/2026||
> For the same reason ReasonML took years to overtake fartscroll.js in the number of stars on GitHub.

Wow, that's a fascinating statistic! Certainly puts the popularity delta into a different light.

On a separate note, the fartscroll.js demo page[0] no longer works since code.onion.com is no longer accessible. Truly disappointing. Luckily their release zip contains an example.html!

[0]: https://theonion.github.io/fartscroll.js/

Tade0 1/11/2026|||
Well, it was actually slightly less than two years:

https://www.star-history.com/#theonion/fartscroll.js&reasonm...

I remember the hype back when it was released, though. You don't hear much about it any more.

phplovesong 1/12/2026|||
Is this a serious take? Do we now measure popularity based on github stars? Thats sort of like measuring how good software is by the amount of LOC.
llmslave3 1/11/2026||
Or Lua... :>
forgotpwd16 1/11/2026||
Then comparison will've been Haxe to TypeLua rather TypeScript. Typing addition seems inevitable.
fallinditch 1/11/2026||
Thanks for sharing, this is useful.

To the author, congrats and thank you. I have one piece of feedback:

When you are typing Typescript on your keyboard you are typing types using a strongly typed language.

Some definitions would be useful to novices: 'type' as a noun or verb, in the mathematical context + the notion of 'strong'.

doodlesdev 1/12/2026||
Unfortunately most of the content hasn't been updated for two years straight, which is quite a lot considering how much ECMAScript and TypeScript have been changing in recent years. I guess it's still a good reference, though.
straws 1/11/2026|
Would also recommend https://types.kitlangton.com/ as a companion — sometimes many examples can illustrate the point more succinctly than text.
More comments...