DEV Community

Cover image for A Quick Overview of TypeScript
Engr. Promise
Engr. Promise

Posted on

A Quick Overview of TypeScript

TypeScript is a programming language that is a super set of JavaScript, meaning that any valid JavaScript code is also valid TypeScript code. TypeScript was developed and is maintained by Microsoft and was first released in 2012. It has gained widespread adoption in the developer community due to its ability to add type checking and other features to JavaScript.

One of the main benefits of using TypeScript is that it can catch errors before you even run your code. This is because TypeScript has a type system that allows you to specify the data types of variables and function parameters, and the compiler will check your code to ensure that you are using the correct types. For example, consider the following JavaScript code:

function greet(name) {
  return "Hello, " + name;
}

console.log(greet(10));
Enter fullscreen mode Exit fullscreen mode

In this code, we are passing a number to the greet function, which expects a string. When this code is run, it will output "Hello, 10", but this is likely not what we intended. With TypeScript, we can specify the type of the name parameter as a string, and the compiler will throw an error if we try to pass anything other than a string:


function greet(name: string) {
  return "Hello, " + name;
}

console.log(greet(10));  // This will cause a TypeScript error

Enter fullscreen mode Exit fullscreen mode

Another benefit of using TypeScript is that it can provide improved code completion and suggestion features in your editor or IDE. This is because the TypeScript compiler has information about the types of variables and functions, and can use this to provide better suggestion when you are writing code.

In addition to adding type checking to your code, TypeScript also includes features such as classes, interfaces, and modules, which are not available in standard JavaScript.

For example, here is how you can define a class in TypeScript:

class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  makeNoise() {
    console.log("Some generic animal noise");
  }
}

const animal = new Animal("Fluffy");
console.log(animal.name);  // Outputs: "Fluffy"
animal.makeNoise();  // Outputs: "Some generic animal noise"

Enter fullscreen mode Exit fullscreen mode

You can also define interfaces in TypeScript, which are contracts that specify the shape of an object. For example:

interface Point {
  x: number;
  y: number;
}

const point: Point = { x: 0, y: 0 };

Enter fullscreen mode Exit fullscreen mode

Modules in TypeScript allow you to organize your code into logical units and can help to prevent naming conflicts. You can define a module like this:

module Shapes {
  export class Triangle {
    // ...
  }
  export class Square {
    // ...
  }
}

const triangle = new Shapes.Triangle();
const square = new Shapes.Square();

Enter fullscreen mode Exit fullscreen mode

In addition to these features, TypeScript also includes support for decorators, which are functions that can be used to modify the behavior of a class or its members. For example:

function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
  console.log(

Enter fullscreen mode Exit fullscreen mode

Top comments (0)