this post was submitted on 02 Oct 2023
10 points (100.0% liked)
Programming
13376 readers
1 users here now
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
That's because there's no way to explain TS concepts without the JS context, so any attempt to skirt around JS it's going to feel like there's a big part missing. You should think of TS like a way to write JS differently, it's mostly a replacement for JSDoc/linting rolled into a nice package. It's not a fully standalone different language.
The closest comparison would be type hinting in Python – it's useful but there's no way you can use Python knowing just type hinting.
Like I said in my other replies: I am not attempting to skirt around JS. If TS is a superset of JS, it would obviously make no sense to try to avoid JS. What I'm looking for is a book/tutorial/... that is structured in a way that it teaches the most important parts the way they are used in TS (including JS) first.
Example: when functions are taught it would explain the basics of JS functions along with the parameter type annotations of TS, because that's the way functions are used in TS.
There just isn't much use for an approach like this, unfortunately. TypeScript doesn't stand alone enough for it. If you want to know how functions work, you need to learn how JavaScript functions work, because TypeScript doesn't change that. It adds some error checking on top of what's already there, but that's it.
An integrated approach would just be a JavaScript book with all the code samples edited slightly to include type annotations, a heavily revised chapter on types (which would be the only place where all those type annotations make any difference at all, in the rest of the book they'd just be there, unremarked upon), and a new chapter on interoperating with vanilla JavaScript. Seeing as the TypeScript documentation is already focused on those exact topics (adding type annotations to existing code, describing how types work, and how to work with other people's JavaScript libraries that you want to use too), you can get almost exactly the same results by taking a JavaScript book and stapling the TypeScript documentation to the end of it, and it'd have the advantage of keeping the two separate so that you can easily tell what things belong to which side.