DEV Community

Manthan Ankolekar
Manthan Ankolekar

Posted on

Typescript type vs interface with example in angular

In Angular, TypeScript is used extensively for defining types, interfaces, and structures. Both type and interface can be employed within Angular applications to describe data shapes, contracts, and more. Below are examples demonstrating their use within an Angular context:

Using Interface in Angular:

Let's say you have an Angular service that fetches user data from an API. You can define an interface to describe the structure of the user data:

// user.interface.ts
export interface User {
  id: number;
  name: string;
  email: string;
  // ... other properties
}
Enter fullscreen mode Exit fullscreen mode

Then, in an Angular service, you might utilize this interface:

// user.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { User } from './user.interface'; // Importing the User interface

@Injectable({
  providedIn: 'root'
})
export class UserService {
  constructor(private http: HttpClient) {}

  getUser(userId: number): Observable<User> {
    return this.http.get<User>(`/api/users/${userId}`);
  }
}
Enter fullscreen mode Exit fullscreen mode

Using Type in Angular:

Similarly, you can use a type alias to describe a specific shape or structure. For instance, defining a type for a configuration object:

// config.type.ts
export type AppConfig = {
  apiUrl: string;
  maxUsers: number;
  // ... other properties
};
Enter fullscreen mode Exit fullscreen mode

Then, you might use this type within an Angular configuration service:

// config.service.ts
import { Injectable } from '@angular/core';
import { AppConfig } from './config.type'; // Importing the AppConfig type

@Injectable({
  providedIn: 'root'
})
export class ConfigService {
  appConfig: AppConfig = {
    apiUrl: 'https://api.example.com',
    maxUsers: 100
    // ... other properties initialized
  };

  getAppConfig(): AppConfig {
    return this.appConfig;
  }
}
Enter fullscreen mode Exit fullscreen mode

Choosing between Interface and Type in Angular:

The choice between using an interface or a type in Angular often comes down to personal preference or specific use cases within the application. Interfaces are typically preferred when defining the shape of objects or describing contracts, while types are more versatile for creating aliases for various types, including unions, intersections, and complex structures.

In Angular, both interfaces and types can be utilized effectively depending on the context and requirements of your application.

Top comments (0)