What is TypeScript

TypeScript is a statically typed superset of JavaScript developed and maintained by Microsoft. It extends JavaScript by adding static types, which allows developers to catch errors early in the development process through type checking. This makes it particularly useful for large-scale applications and projects where code maintainability and error reduction are critical.

Here are some key features and benefits of TypeScript:

Static Typing: TypeScript introduces type annotations and type inference, enabling static type checking at compile time.

Type Inference: Even if types are not explicitly declared, TypeScript can infer them based on the code, providing a balance between explicit type annotations and flexibility.

Advanced Type System: It supports complex types such as unions, intersections, and generics, enhancing code expressiveness and robustness.

Compatibility with JavaScript: TypeScript code compiles down to plain JavaScript, ensuring compatibility with existing JavaScript projects and libraries.

Enhanced IDE Support: Due to its static typing, TypeScript offers better code completion, refactoring, and navigation features in integrated development environments (IDEs) like Visual Studio Code.

ES6+ Features: TypeScript includes features from newer ECMAScript standards (like ES6, ES7, etc.), such as classes, modules, and async/await, often before they are supported by all browsers.

Rich Tooling: The TypeScript ecosystem includes robust tooling for linting, debugging, and testing, which can improve developer productivity and code quality.


If there is error in the code then it shows the error before the code execution.​

It shows compiler errors get detected by compiler at the time of code development.​

Note:- Runtime errors are not get detected by compiler and hence identified at the time of code execution.


Browser can’t execute it as like a JavaScript​


Here’s a simple example to illustrate the differences between JavaScript and TypeScript:


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

console.log(greet("John")); // Works fine
console.log(greet(123)); // Works but may cause runtime errors

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

console.log(greet("John")); // Works fine
console.log(greet(123)); // Compilation error: Argument of type 'number' is not assignable to parameter of type 'string'

In the TypeScript example, the function greet expects a string parameter, and passing a number results in a compile-time error, preventing potential runtime issues.