DEV Community

Cover image for Introduction to TypeScript
Ian Felix
Ian Felix

Posted on • Edited on

Introduction to TypeScript

Introduction to TypeScript

In this article, we will learn how to use TypeScript and its basic features.

What is TypeScript?

  • TypeScript is a superset of JavaScript that compiles to plain JavaScript.
  • Add basically static typing to JavaScript.

Why use TypeScript?

  • avoid unexpected errors and results.
  • reduce the amount of bugs.
  • reduce the amount of time to fix bugs.
  • IDE support.

typescript meme

Types

Below is a list of basic types in TypeScript.

boolean true/false string 'foo', "foo", `foo` number int, float, hex, binary array type[] array Array<string | number> // union type of string and number  tuple (type[number,string]) enum key and value enum colors { withe = '#fff' black = '#000' } any (any type) void () does not return anything null | undefined never (never type) no return type object {} 
Enter fullscreen mode Exit fullscreen mode

Type Inference

The own typescript infers the type when passed a simple value.

let message = 'Hello World'; // let message: string message = 123; // error: type number is not assignable to string const isActive = true; // const isActive: boolean const count = 10; // const count: number const list = [1, 2, 3]; // const list: number[] const user = { name: 'John', age: 30, }; // const user: { name: string; age: number } user.name = 123; // error: type '123' is not assignable to type 'string' 
Enter fullscreen mode Exit fullscreen mode

Type Aliases and Interfaces

  • Type Aliases:

Type aliases are used to create a new name for an existing type and can be reused.

 type StringType = string; type StringOrNumber = StringType | number; // union type of string and number type StringOrNumber = { id: number; value?: string; // optional property }; const value: StringType = 'foo'; // no error const value2: StringType = 123; // error: type '123' is not assignable to type 'string' const value3: StringType = true; // error: type 'boolean' is not assignable to type 'string'. 
Enter fullscreen mode Exit fullscreen mode
  • Interfaces:

Similar to the type alias but it only works with objects and is more for creating more complex objects.

Use interface for public API's definition when authoring a library or 3rd party ambient type definitions, as this allows a consumer to extend them via declaration merging if some definitions are missing. - TypeScript Docs

 interface Game { id: string | number; // union type of string and number title: string; genre: string discription: string; platform?: string[]; // optional property } 
Enter fullscreen mode Exit fullscreen mode

Difference between interface and type aliases

image - React TypeScript Cheatsheet

You can find more information about interfaces and type aliases in the official TypeScript documentation. - TypeScript Docs

Thank you for reading this article.
If you enjoy this article, please up vote and comment.
Follow me on Twitter

Top comments (0)