TypeScript is an extremely effective resource that builds off the syntax and logic of Javascript. TypeScript, being a language so heavily based on Javascript, is incredibly intuitive, and easy to learn. In addition to being so easy to learn and use, TypeScript incorporates static typing, which is where the main difference between it and Javascript lies. Static Typing is a process where variables are assigned a type which allows for smoother compilation with a lower propensity for errors. One important thing to note on top of this is that unlike JS, TypeScript is compiled, which makes execution faster and very reliable. Another important feature is the addition of user created types. This feature grants developers the ability to create types which make it convenient to refer to certain properties and functions a value might have. User created types mark the largest departure from Javascript's syntax and style in TypeScript. The new syntax introduced by typeScript in turn streamlines the development process, since it allows developers to more easily refer to and make use of objects. Naturally, this makes TypeScript ideally suited for web development or alternatively tasks involving object oriented programming. Beyond the added efficiency of static typing, TypeScript also introduces enumeration, which can be incredibly useful when iterating through lists or the like. To summarize, TypeScript adds functionality to Javascript to help expedite and reduce the effort involved in designing a program or application.
Since TypeScript is largely built around Javascript, a good foundation in Javascript is required in order to be able to effectively use TypeScript. In that regard, W3schools has a good enough tutorial on Javascript: https://www.w3schools.com/js/default.asp. While it gives a general overview of the overall concepts and syntax of the language, it should not be a developer's first go-to, even though it is usually among the first search results when looking up anything JS related. The reason for this is due to the fact that the platform's examples are often quite out of date, whilst their explanations are quite brief, and don't necessarily explain the given features of the language in the necessary level of detail. That said, W3schools does suffice for things like quick syntax checks. One of the best sources out there is easily Free Code Camp's video on JS: https://www.youtube.com/watch?v=PkZNo7MFNFg. The video gives an incredibly in depth guide into the workings of Java Script, from assigning variables to creating objects. This video constitutes an excellent resource for beginners, while also working as a good quick reference for more experienced programmers, with each section conveniently labeled in the video's description. A third and final aid for learning JS is Mozilla's own Javascript site: https://developer.mozilla.org/en-US/docs/Learn/JavaScript. While a strong resource, the content is mainly pursued from a web development angle, so the introduction is prefaced with the expectation that the reader is already familiar with HTML and CSS. Though on the whole it is easy enough to navigate, the information provided is not quite organized as nicely as the video. All things considered, the reader should not have any significant difficulty finding any needed information from their tutorial.
In terms of learning TypeScript, the official TypeScript language webpage: https://www.typescriptlang.org, proved to be the best resource available. While the articles available on this site proved to be extremely in depth and useful, the expectation with this source is that the reader is already familiar with the general logic and syntax of Java Script, up to and including object oriented programing in JS. In addition to the site for the language itself, there are the corresponding site and video from W3schools and Free Code Camp respectively: https://www.w3schools.com/typescript/ & https://youtu.be/30LWjhZzg50?si=DqGxNHYpZT7eazi0. Both resources largely have the same benefits and issues as their corresponding JS versions.
Given that the skills needed to learn TypeScript can already be learned through Javascript, assuming one already knows Javascript, the effort of learning TypeScript should be quite minimal in comparison. Assuming the person in question does not already know JS, the effort of learning TypeScript should be pretty minimal in comparison. Ultimately, since TypeScript grately streamlines the process of coding in JS, it would make sense for pretty much any Javascript user to learn at some point. The implementation of static typing makes TypeScript an extremely effective asset, making typeScript quick and reliable on execution. On top of that, custom types allow the user to expedite their workflow, by giving them the ability to easily call and reference objects and any associated attributes in a much more convenient manner than Javascript would otherwise permit.
Other than TypeScript, Dart sticks out as among the best languages for development. In principle, Dart is similar to TypeScript in its purpose, and what it aims to do, however, while TypeScript is largely built on Javascript's own syntax, Dart conversely is more alike C++. Though both languages have similar functionality, since Dart's syntax is also quite similar to C++, it would make it a language better suited to more experienced programmers and developers, with an obvious prerequisite being experience in the aforementioned language. An important feature of Dart is that it has a so-called garbage collection feature, which reallocates memory used for objects that are no longer needed, which makes it very efficient. Another notable alternative to TypeScript is CoffeeScript, which can be likened to a simplified Javascript, with a focus on minimalist design. In addition to CoffeeScript, there are a number of other languages with either similar syntax or functionality to typescript, meaning the decision between one and the next ultimately boils down to personal preference.