TypeScript Class

TypeScript is object oriented programming language and Class is a basic concept of Object Oriented Programming. In this tutorial, we shall learn about classes in TypeScript and how to create objects of a class.

Class is basically a blueprint to create specific type of objects whose state and behavior is dictated by the variables and methods defined inside the class.

Syntax of TypeScript Class

Following is the basic syntax of defining a TypeScript Class :

</>
Copy
class className{
    // variables
    // constructors
    // functions
}
  • class is the keyword to declare a class.
  • className is the name by which the class can be referenced.
  • finite number of variables could be declared inside the class, which help to represent the state of objects belonging to the class type.
  • constructors help to create objects of the class type with specified state passed as arguments to them.
  • finite number of functions could be declared and defined inside the class, which help to define the behavior of objects of the class type.

Example – Simple Class

We shall look into a basic example, containing two variable, a constructor and a function. Then compile it to JavaScript code and analyze the code. Following is a student class with name and roll number as variables and displaying this information as behavior (function) of the class.

student.ts

</>
Copy
class Student{
    // variables
    rollnumber:number
    name:string

    // constructors
    constructor(rollnumber:number, name:string){
        this.rollnumber = rollnumber
        this.name = name
    }

    // functions
    displayInformation():void{
        console.log("Name : "+this.name+", Roll Number : "+this.rollnumber)
    }
}

When compiled using tsc command line program,

$ tsc student.ts

The output JavaScript file is :

student.js

</>
Copy
var Student = /** @class */ (function () {
    // constructors
    function Student(rollnumber, name) {
        this.rollnumber = rollnumber;
        this.name = name;
    }
    // functions
    Student.prototype.displayInformation = function () {
        console.log("Name : " + this.name + ", Roll Number : " + this.rollnumber);
    };
    return Student;
}());

TypeScript code is relatively easy to read when it comes to using object oriented concepts.

Now we shall look into each of variable, constructor and function declarations we have done in the example student.ts.

Declaring Variables in Class

To declare variables inside a class, write the variable name followed by the type. Unlike variables in a typical TypeScript, var keyword is not required.

</>
Copy
 variableName: variableType

Example

</>
Copy
 rollnumber: number
 name: string

Declaring and Defining Constructor in Class

Constructors are used to instantiate object of the class type with the variables of it initialized to specific values.

To define a constructor for a class, use the constructor keyword followed the list of variables enclosed in parenthesis, and then body of constructor enclosed in flower brackets.

Following is the syntax to declare and define a constructor :

</>
Copy
constructor(variable1:variableType, variable2:variableType){
    // load class variables with the parameter values
}

If parameters of constructors and class variables share the same name, class variables could be referenced using this keyword like this.variable1 .

Example

</>
Copy
constructor(rollnumber:number, name:string){
    this.rollnumber = rollnumber
    this.name = name
}

Here this.rollnumber  and this.name  refer class variables.

Declaring and Defining Function in Class

To define a function inside class, the rules of defining a function that we already discussed in TypeScript Functions hold.

Example

</>
Copy
displayInformation():void{
    console.log("Name : "+this.name+", Roll Number : "+this.rollnumber)
}

displayInformation is the name of the function and here it does not accept any parameters and returns void (nothing). It just logs a string to console.

Class Objects

Objects are instances of a class. A class by itself does not occupy any space in program stack memory while execution, but objects do.

Syntax to Declare/Initialize Class Objects

Following is the syntax to create an object of a class type :

</>
Copy
 var object1 = new ClassName(arguments)
  • var is the keyword to declare object variable
  • object1 is the name of the object of type ClassName
  • new is the keyword used to create a new object of specified Class.
  • arguments are optional and if provided, should match one of the constructors defined in class body.

Example

For the example Student class that we already saw at the start of this tutorial, we shall create two objects.

</>
Copy
var student1 = new Student(2, "Rohit")
var student2 = new Student(4, "Kohli")

Accessing Variables and Calling Functions of an Object

Once the object of a Class type is created, the values of variables and functions could be accessed using dot operator.

Complete example is shown below.

example.ts

</>
Copy
class Student{
    // variables
    rollnumber:number
    name:string

    // constructors
    constructor(rollnumber:number, name:string){
        this.rollnumber = rollnumber
        this.name = name
    }

    // functions
    displayInformation():void{
        console.log("Name : "+this.name+", Roll Number : "+this.rollnumber)
    }
}

var student1 = new Student(2, "Rohit")
var student2 = new Student(4, "Kohli")

// accessing variables
console.log(student1.name)
console.log(student2.rollnumber)

// calling functions
student1.displayInformation()
student2.displayInformation()

Transpiled JavaScript code would be as shown below:

example.js

</>
Copy
var Student = /** @class */ (function () {
    // constructors
    function Student(rollnumber, name) {
        this.rollnumber = rollnumber;
        this.name = name;
    }
    // functions
    Student.prototype.displayInformation = function () {
        console.log("Name : " + this.name + ", Roll Number : " + this.rollnumber);
    };
    return Student;
}());
var student1 = new Student(2, "Rohit");
var student2 = new Student(4, "Kohli");
// accessing variables
console.log(student1.name);
console.log(student2.rollnumber);
// calling functions
student1.displayInformation();
student2.displayInformation();

Conclusion

In this TypeScript Tutorial, we have learnt about Classes in TypeScript with syntax and examples, what components are present inside the class, and how to instantiate the objects of the Class.