TypeScript / TypeScript Classes and Object-Oriented Programming

Using Getters and Setters in TypeScript

In this tutorial, we will learn about getters and setters in TypeScript. We will understand how to use them to control access to class properties.

Tutorial 5 of 5 5 resources in this section

Section overview

5 resources

Explores object-oriented principles in TypeScript, including classes, inheritance, and access modifiers.

Tutorial: Using Getters and Setters in TypeScript

1. Introduction

1.1 Goal of the Tutorial

In this tutorial, we will learn how to use getters and setters in TypeScript. Getters and setters are special methods that provide read and write access to an object's properties respectively.

1.2 Learning Outcomes

By the end of this tutorial, you will be able to:
- Understand the concept of getters and setters in TypeScript.
- Use getters and setters to control access to class properties.
- Apply best practices when using getters and setters.

1.3 Prerequisites

To get the most out of this tutorial, you should have a basic understanding of TypeScript and classes in TypeScript.

2. Step-by-Step Guide

2.1 Getters in TypeScript

In TypeScript, a getter is a method that is used to retrieve the value of an object's property. It provides a way to access the private properties of a class.

Here's how to declare a getter in TypeScript:

class MyClass {
    private _myProperty: string;

    get myProperty(): string {
        return this._myProperty;
    }
}

In the above code, myProperty is a getter that returns the value of _myProperty.

2.2 Setters in TypeScript

A setter, on the other hand, is a method that is used to set the value of an object's property. It provides a way to modify the private properties of a class.

Here's how to declare a setter in TypeScript:

class MyClass {
    private _myProperty: string;

    set myProperty(value: string) {
        this._myProperty = value;
    }
}

In the above code, myProperty is a setter that sets the value of _myProperty.

2.3 Best Practices

  • Use getters and setters to encapsulate and protect your data. A getter and setter provide a controlled way of accessing and modifying data.
  • Prefix private variables with an underscore (_). This is a common convention to indicate that a variable is intended to be private.

3. Code Examples

3.1 Example 1: Using a Getter

class Person {
    private _name: string;

    constructor(name: string) {
        this._name = name;
    }

    // Getter for name
    get name(): string {
        return this._name;
    }
}

let person1 = new Person('John');
console.log(person1.name); // Output: John

3.2 Example 2: Using a Setter

class Person {
    private _name: string;

    constructor(name: string) {
        this._name = name;
    }

    // Setter for name
    set name(value: string) {
        this._name = value;
    }
}

let person1 = new Person('John');
person1.name = 'Jane';
console.log(person1.name); // Output: Jane

4. Summary

In this tutorial, we have learned about getters and setters in TypeScript. We saw how they are used to protect and encapsulate class properties. We also went through some best practices to follow when using getters and setters.

5. Practice Exercises

5.1 Exercise 1:

Create a class Student with a private property _grade. Implement a getter and a setter for grade that ensures the grade is between 0 and 100.

5.2 Exercise 2:

Create a class Rectangle with private properties _length and _width. Implement getters and setters for length and width. Also, implement a getter for area which calculates the area of the rectangle.

5.3 Exercise 3:

Create a class BankAccount with a private property _balance. Implement a getter for balance. Implement a deposit(amount) method and a withdraw(amount) method, ensuring that the balance never goes negative.

Please note that these exercises are meant to test your understanding of getters and setters in TypeScript. I encourage you to try them out on your own before looking up solutions. Happy coding!

Need Help Implementing This?

We build custom systems, plugins, and scalable infrastructure.

Discuss Your Project

Related topics

Keep learning with adjacent tracks.

View category

HTML

Learn the fundamental building blocks of the web using HTML.

Explore

CSS

Master CSS to style and format web pages effectively.

Explore

JavaScript

Learn JavaScript to add interactivity and dynamic behavior to web pages.

Explore

Python

Explore Python for web development, data analysis, and automation.

Explore

SQL

Learn SQL to manage and query relational databases.

Explore

PHP

Master PHP to build dynamic and secure web applications.

Explore

Popular tools

Helpful utilities for quick tasks.

Browse tools

QR Code Generator

Generate QR codes for URLs, text, or contact info.

Use tool

Random Name Generator

Generate realistic names with customizable options.

Use tool

CSS Minifier & Formatter

Clean and compress CSS files.

Use tool

CSV to JSON Converter

Convert CSV files to JSON format and vice versa.

Use tool

JSON Formatter & Validator

Beautify, minify, and validate JSON data.

Use tool

Latest articles

Fresh insights from the CodiWiki team.

Visit blog

AI in Drug Discovery: Accelerating Medical Breakthroughs

In the rapidly evolving landscape of healthcare and pharmaceuticals, Artificial Intelligence (AI) in drug dis…

Read article

AI in Retail: Personalized Shopping and Inventory Management

In the rapidly evolving retail landscape, the integration of Artificial Intelligence (AI) is revolutionizing …

Read article

AI in Public Safety: Predictive Policing and Crime Prevention

In the realm of public safety, the integration of Artificial Intelligence (AI) stands as a beacon of innovati…

Read article

AI in Mental Health: Assisting with Therapy and Diagnostics

In the realm of mental health, the integration of Artificial Intelligence (AI) stands as a beacon of hope and…

Read article

AI in Legal Compliance: Ensuring Regulatory Adherence

In an era where technology continually reshapes the boundaries of industries, Artificial Intelligence (AI) in…

Read article

Need help implementing this?

Get senior engineering support to ship it cleanly and on time.

Get Implementation Help