Let's explain what TypeScript is base on examples not some academic definitions. Let's take step by step.

Basic types

  • Boolean
  • Number
  • String
  • Array
  • Enum
  • Any
  • Void

All types are explained here

Typed vars

var name: string = "Joe"

Variable's "name" type is set to string. Trying to call something like:

function sum(num: number): number {
    return num + num;


would cause an error.

In TypeScript there is a type called any. Following function would sum/concat/merge any value which is passed as an argument:

function sum(val: any): any {
    return val + val;


Interfaces allows to define shape on an object.

interface Person {
  name: string;
  lastname: string;
  age: number;
  nickname?: string


And this is the definition of an object which uses this interface:

var lily: Person = {
    name: "Lily",
    lastname: "Doe",
    age: 27

Note that nickname is not defined here. ? next to "nickname" means that this property is optional. Trying to do something like:

lily.occupation = "actress";

would raise an error

Class definition

TypeScript allows to define classes which looks pretty much the same as ES6 classes. Right now the main difference is that TS allows to define class properties and ES6 doesn't support it.

class MyClass {
      params: MyClassParams;
 constructor(params: MyClassParams) {
      this.params = params;
 getArticle(): Promise<ArticleResponse> {
      return getUrl(this.params.url);

Useful resources