What Is TypeScript And Why Should You Use It?

・11 min read
What Is TypeScript And Why Should You Use It?

JavaScript has long been the most popular language for programming web pages and apps on the Internet. With technologies like Node.js and React.js, JavaScript can now be used on both the frontend and the backend.

Was JavaScript, on the other hand, designed to build massive, complicated systems like those seen on the current web? No.

We'll show you a solution for it - TypeScript – and get you started on the road to integrating types into your JavaScript code in this post.

What is Typescript?

Microsoft produced the Typescript open-source programming language. It's a Javascript superset with the addition of static typing. It's worth noting that Typescript eventually compiles to Javascript, allowing the finished code to execute in any JS-compatible system. It can be client-side (via a web browser) or server-side (through a web server) (Node.js).

TypeScript is used the most by Angular developers, but other frameworks also have great support for it. It is already used by 60% of JS programmers, and 22% want to test it.

Frontend or backend – where is TypeScript used?

JavaScript is generated from TypeScript. As a result, TS can be used everywhere JS can be used, including the frontend and backend.

Types of TypeScript

Img

JavaScript does not allow static typing, but TypeScript does. You can make your composite types using static type systems. Engineers can now communicate their goals in more depth.

In addition to that, we'd like to highlight the expressiveness of TS using the following types:

Any & Unknown

Whereas any as a type can encompass anything unknown is its type-safe equivalent.

While any may be used to represent anything, the unknown is its type-safe equivalent.

Any includes assigning any JavaScript variable to it whenever you wish to avoid the type system. It's widely used to describe incoming variables that haven't been validated yet and whose type is unknown (for example, from third-party APIs).

The unknown is like any other variable, except it won't allow you to do anything with it unless it's expressly type-checked.

Void

Void is used when there is no value returned, for example, as the return type of functions that return nothing.

Never

Never is the return type for something that should never occur, like a function that will throw an exception.

Intersection & Union Types

Intersection types allow you to combine many basic types into a single type. For instance, a customized type of person with a name: string and a phone number may be created. It's the same as stating, "I'd like my type to be this and that."

Thanks to union types, your type can accept one of the many basic types. You may, for instance, have a search that yields either a string or an undefined response. It's the same as stating, "I'd like my type to be this or that."

Img

TypeScript vs. JavaScript

Why was TypeScript created while JavaScript already exists? JavaScript has become more sophisticated as time went on, and it was never able to fulfill its maximum potential as a server-side technology in the industry. Essentially, every JavaScript code is also valid in TypeScript, and TypeScript is just JavaScript with more capabilities.

What are the advantages of TypeScript?

Let's look at the TypeScript capabilities that closed in the blanks and solved several developers' challenges with JavaScript.

Optional Static Typing

Because JavaScript is a dynamically typed language, type discrepancies will not be treated as failures until execution. This frequently resulted in a slew of bugs and annoyance. TypeScript, on the other hand, includes the possibility of static typing. A variable's type does not change after specified static typing, and it can only accept particular values. Any type-related problems (syntax or semantic) are sent to developers, resulting in early bug identification.

Early Bug Detection

Let's go through why this is a significant benefit. The compiler identifies alerts and faults in our code during development, reducing the likelihood of defects and potential errors at execution. Overall, this functionality helps developers avoid making mistakes in JavaScript that they would otherwise have to sort through manually.

Improved Readability

TypeScript's static reading and interfaces improve code efficiency. In TypeScript, an interface can be used to both describe and execute a type (string, boolean, number...), leading to a much more descriptive codebase. Variable declarations with defined types and explicit categories increase clarity and code stability.

Code Optimization

TypeScript also can speed up development with the following features:

  • Type Annotation — automatically checks the value for each static type
  • Generics — lets you write a generalized form of method
  • API Documentation — VS code navigation allows developers to see parameter types automatically and track variables.
  • Intellisense — Microsoft developed an instrument for code navigation that offers auto code completion. You can see the properties and parameters by hovering over a method's name.

Although the execution is far from perfect, it is still a valid advantage.

Disadvantages of TypeScript

Of course, nothing in the world is flawless, whether real or digital. This rule applies to TypeScript, and it has a few drawbacks.

The overly complicated typing system

First and foremost, whereas the typing system is a fantastic tool in many ways, it may be a bit difficult to master at times. This isn't a TypeScript drawback but rather a drawback that derives from its compatibility with JavaScript, which adds to the complexity.

Required compilation

Another criticism against TypeScript is that, unlike JavaScript, it requires compilation. However, let's face it: most JavaScript apps nowadays require a build phase. Gulp, Grunt, Webpack, Rollup, Babel, or Closure all require a build step, and nothing stops you from extending it.

False sense of security

The major downside of TypeScript, in my perspective, is that it might give you a false sense of safety. Yes, the language's ability to verify types and tell us when something is incorrect with our code is a major benefit. However, depending on this too strongly carries a huge risk: some developers mistakenly believe that everything written in TypeScript is bulletproof. It's not the case.

What are the key differences between JS and TS?

The key differences between TS and JS are as follows:

JavaScript

  • Designed by Brendan Eich (Netscape) and released in 1995
  • A lightweight scripting language that helps create dynamic web page content and is supported by all browsers
  • Dynamic typing — weakly typed (no option for static typing)
  • Best suited for small projects
  • Can be directly used in browsers
  • JS libraries work by default

TypeScript

  • Designed by Microsoft and released in 2012
  • Superset of JavaScript developed to overcome code complexity for large projects (OOP language)
  • Strongly typed — supports both static and dynamic typing
  • Best suited for large web apps
  • Converted into JavaScript code to be understandable for browsers (Transpiler)
  • Since it’s a superset, all the JavaScript libraries and other JavaScript code work without any changes

Why TS will not replace JS

Shouldn't we just chuck JavaScript and adopt TypeScript for our applications now that we have these additional great features? No, in a nutshell. TypeScript isn't a substitute for JavaScript, and it's not appropriate for many tasks. JavaScript still dominates client-side scripting languages. It's easier to execute, refresh, and debug tiny code sections since JavaScript is executed directly in the browser. When flexibility is a top requirement,

JavaScript is an excellent choice since it allows you to design functionality without adhering to rigid constraints. TypeScript, on the other hand, is your best pick if you're working with a big codebase that you want to bring to a single standard while prioritizing performance. As your code expands and gets more complicated to manage, the likelihood of mistakes increases; therefore, it's best to catch them around compile time.

Img

Why use TypeScript over JavaScript

Here’re the main reasons why you would want to use TypeScript over JavaScript.

TypeScript may save your project from Failure

Programming errors are inevitable. It's often just a typo, and other times it's hurrying to meet a deadline. Assume you're developing a large financial system for your organization that handles employee pay automatically. Isn't it true that such a system should be trustworthy first and probably most important? With TypeScript you can be sure you won’t pass the wrong type of argument to the function since it prevents such errors at the early stage.

Typescript Documents itself

The code in Typescript is self-explanatory. In many circumstances, type definitions put straight in project or library files might take the place of documentation. Consider the following scenario. Let's pretend we have a render item method that takes items as input.

If you want to know what “items” actually are in JavaScript, you have a few options:

  • go through the documentation (if one exists),
  • Add console.log(items) to this function's declaration, launch the program, and look at the "items" parameter in the console.
  • Try to figure out where the function is utilized and then determine what data is sent via it.
  • Check with your coworkers to see whether anyone has recently worked on it.
  • Assume that the item's argument is exactly what you believe it is (albeit this isn't the ideal approach).

Typescript gives you great IDE support

Most developers' time is spent on IDEs (integrated development environments, such as WebStorm) or lighter code editors like VSCode. Of course, all code could be typed in a basic notepad, but it would be inconvenient and time-consuming. Developers use iDEs to make our life easier, and our job goes faster.

  • Mouse hover support – Simply place your mouse over the area of the code you're interested in to discover what's hidden beneath it.
  • Code auto-completion – Code auto-completion in IDEs for static type languages is quicker and more reliable. Because of the code clues, you don't need to dive through the documentation.
  • Real-time type checking – Once you have an object in JavaScript, you can retrieve all of its properties, even though the object doesn't exist (in which case it will be "undefined"). As you can expect, this can lead to difficult-to-trace problems. Your IDE warns you in real-time if you try to access something that doesn't exist in Typescript.
  • Easier code refactor – In Typescript, refactoring code in the IDE is considerably easier - it works very well than vanilla Javascript. A "wrongly" named variable in JS sometimes can cause your refactoring to fail.

Typescript has type inference

Suppose you prefer Javascript over statically typed languages. In that case, you may argue that Typescript requires substantially more code since you must declare all types for all variables, function arguments, and function return types, among other things. But then there's the type inference feature, which is quite useful. Typescript can "estimate" a variable's type tied to the value supplied to it or the function result based on its body.

Typescript allows you to forget about console.log

Because most of the issues you experience in the IDE or during compilation time, Typescript developed programs are much easier to troubleshoot. Switching to TS might result in less time spent in the browser console.

Typescript works great with Node backend

It's typical to begin creating the front-end while the back-end is still being developed. The front-end developer then meets with the backend developers to discuss how the API response would appear for certain endpoints. When a back-end employs vanilla Javascript or another language, documentation for the API must be created and kept up-to-date as things change.

Typescript improves project quality

Img

Different software projects need the participation of several programmers. All of the factors above contribute to better and simpler project maintenance. When a project's scope expands, and the team grows, developers will appreciate all TypeScript flavors.

If all of the above arguments failed to persuade you to use TypeScript to create the frontend in 2021, I could only point you to the market's "major players." All prominent front-end libraries, such as React, Vue, and Angular, are built-in Typescript and provide Typescript support by default.

Summary

As you've seen, TypeScript has both advantages and disadvantages. The downsides of TS are negligible, and the numerous benefits it provides are well worth it. This is why, at Selleo, we utilize TypeScript for most of our software projects.

If you are on the hunt for a reputed, trusted and expert third party program development firm that can build your software on TypeScript, contact us at Selleo.