Class Declaration

Chapter: Classes and Objects / Section: Class Fundamentals

Class Declaration

A comprehensive guide to Class Declaration in Typescript. Learn about defining classes with clear explanations. Perfect for beginners starting with Typescript.

Introduction

As you dive into object-oriented programming (OOP) with Typescript, understanding how to declare classes is crucial. Classes serve as blueprints for creating objects, encapsulating data and behavior. In this article, we'll explore the fundamentals of class declaration in Typescript, empowering you to structure your code effectively.

Core Concepts

In Typescript, a class is defined using the class keyword followed by the class name. Here's a basic example:

class Person { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } sayHello() { console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`); } }

In this example, we declare a Person class with properties name and age, a constructor to initialize these properties, and a sayHello method.

Implementation Details

To create an instance of a class, we use the new keyword followed by the class name and provide the necessary arguments to the constructor:

const person = new Person("John", 25); person.sayHello(); // Output: Hello, my name is John and I'm 25 years old.

Classes can also have optional properties, readonly properties, and parameter properties. Optional properties are denoted with a ?, readonly properties with readonly, and parameter properties allow you to declare and initialize properties directly in the constructor.

Best Practices

  • Use meaningful and descriptive names for classes and properties.
  • Keep classes focused and cohesive, following the Single Responsibility Principle.
  • Utilize access modifiers (public, private, protected) to control the visibility of class members.
  • Consider using interfaces to define contracts for classes.

Common Pitfalls

  • Forgetting to initialize properties in the constructor can lead to undefined values.
  • Overusing inheritance can result in complex and tightly coupled code. Favor composition over inheritance when possible.
  • Neglecting to handle potential null or undefined values when accessing class properties.

Practical Examples

Here's an example of a Rectangle class that demonstrates class declaration and usage:

class Rectangle { width: number; height: number; constructor(width: number, height: number) { this.width = width; this.height = height; } getArea() { return this.width * this.height; } } const rectangle = new Rectangle(5, 3); console.log(rectangle.getArea()); // Output: 15

Summary and Next Steps

Class declaration is a fundamental concept in Typescript, allowing you to define blueprints for objects. By understanding how to declare classes, initialize properties, and define methods, you can create well-structured and reusable code.

Next, explore more advanced topics like inheritance, abstract classes, and interfaces to further enhance your Typescript skills. Happy coding!