What is the best way to utilize a component's property within a parent abstract class?

Custom Class:

export abstract class CustomClass {
  constructor();

  customMethod() {
    // accessing the name input of SomeComponent here;
  }
}

Some Component:

export class AnotherComponent extends CustomClass {
    @Input() name: string;

    constructor() {
        super();
    }
}

How can I utilize the value of AnotherComponent's name input in the method of CustomClass?

Answer №1

Begin by defining the property within the AbstractClass

export abstract class AbstractClass {
  name: string;
...
}

In the subclass, declare the property using override - a TypeScript keyword that ensures consistency with the parent class.

@Input() override name: string;

Access the property using this.name in the parent class

  method() {
    console.log(this.name);
  }

Invoke the method in the subclass

export class SomeComponent extends AbstractClass {
    @Input() override name: string;

    constructor() {
        super();
        this.method()
    }
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Exploring the integration of JSON data requests into a SQLite database using Angular2 and Ionic2

I am currently facing an issue with inserting JSON format data from a request into a SQLite database within my app. Even though the database and table are set up properly, I am having trouble getting the INSERT function to work correctly. Below is the sn ...

Unable to load content from Three.js Examples library (Error loading script for "three/examples/jsm/loaders/OBJLoader2")

In my Angular application, I have a simple setup using Three.js. When I try to import the `OBJLoader2` from `three/examples/jsm/loaders/OBJLoader2`, everything works fine except when running it with the `ts_devserver`. The browser console shows an error: G ...

Building basic objects in TypeScript

My current project involves utilizing an interface for vehicles. export interface Vehicle { IdNumber: number; isNew: boolean; contact: { firstName: string; lastName: string; cellPhoneNumber: number; ...

order by truthiness

I am working with an array of the following class: export class Tests { id: number; name: string; createdAt: any; succress: boolean; constructor(id: number, name: string, createdAt: any, success: boolean) { this.id = id; this.name = nam ...

The process of subscribing to a service in Angular

I currently have 3 objects: - The initial component - A connection service - The secondary component When the initial component is folded/expanded, it should trigger the expansion/folding of the secondary component through the service. Within the service ...

Angular issue: Readonly or disabled input fields not submitting data

Struggling with creating a form in Angular 2 to submit dynamically generated values from a service. The goal is to calculate the equivalent amount of bitcoin for X chilean pesos using Angular's http module to fetch the price. However, facing an issue ...

Angular to always show loading spinner on page load

Utilizing my Angular project with the Ant Design NG Zorro loading spin. I encountered an issue where the loading spin is continuously active on my Angular page. Does anyone know the correct way to implement this loading spinner? Thanks View the example o ...

How to make a div stand out when clicked in an Angular application

Within my code, there is a booking-list div that I am utilizing to showcase booking timings. When hovering over this div, the background-color changes, as depicted in the image below. https://i.stack.imgur.com/Iz1r6.png My current dilemma is that when se ...

What could be causing the delay in the execution of Redux dispatch?

When I open a file and parse it, the dispatch into redux state takes longer than anticipated. It seems like the dispatch itself is taking several hundred milliseconds more than the reducer. After opening and parsing the file, the following dispatch is mad ...

Handling click events on Datatable.net paging buttons

My goal is to capture the click event when one of the paging buttons on the Datatable is clicked in Angular. I'm not exactly sure how to go about accomplishing this! If I refer to this example, how can I adapt the code for Angular? Specifically, how ...

Can TypeORM create an entity for a many-to-many relationship that functions like ActiveRecord's join table concept?

Consider a scenario where there is a Guardian entity connected to a Student entity. The goal is to establish their many-to-many relationship in TypeORM by introducing a new entity called StudentGuardianRelationship. This intermediary entity serves the purp ...

TypeScript fails to detect errors in setting state with incorrect interface properties in React components

Even though I clearly defined an interface with specific props and assigned that interface to be used in useState, no error is triggered when the state value is set to an array of objects with incompatible props: This is how ResultProps is defined: interf ...

Encountered a NodeJS error while attempting to locate information in a mongo DB: UnhandledPromiseRejectionWarning

In my MEAN stack application, I am working on implementing a login feature that includes social login functionality. When a new user attempts to log in using Facebook, I need to verify if their Facebook account is already registered in my MongoDB database. ...

Ways to utilize an interface with a blank object that will be filled at a subsequent time

I'm struggling to find the right words to explain my situation. Essentially, I need to create an empty object that I plan to fill with data. I already have a clear idea of what the final structure of this object should be: interface BodyInterface { ...

What is the proper way to implement process.cwd() in an Angular2 Component using TypeScript?

How can I utilize process.cwd() within an Angular2 Component using TypeScript? What needs to be imported? When used in the constructor like so: console.log("Current working directory: ", process.cwd()); an error is displayed: ORIGINAL EXCEPTION: Re ...

What is the best way to transfer PHP form data to an Angular2 application?

As I am still getting familiar with angular2/4, please bear with me if I overlook something obvious. I am currently working on updating a booking process using angular2/4. Initially, the booking procedure commences on a php website, and once some basic in ...

What is the syntax for declaring a function type with an optional parameter in Typescript?

I have a function with optional parameters that I am passing down to another component. execute = (option: string = 'default'): void => { // ... } In the receiving component, there is a property called executeFunction where I intend to assi ...

Assigning values to objects based on the types of their properties in Typescript

In my Redux store, I want to create a reducer that can modify any attribute values within the store. Consider the state object defined with specific types: type StoreState = { admins: Admin[]; messages: Message[]; pageInformation: PageInformation; } ...

Troubleshooting: Data retrieval issues in AngularFire within Ionic and Angular Application

I am encountering errors and facing issues with data retrieval in my Angular and Ionic application when using AngularFire for Firebase integration. Here is a snippet from my package.json file: "dependencies": { "@angular/common": "5.0.3", "@angul ...

What steps can be taken to fix a particular JavaScript/TypeScript type within an IDE during compilation?

Consider the following code snippet: class Test{ /** @type {(e : Event)=> void} */ test; } var test2 = new Test(); test2.test = (e) => {} If you were to use this code in a program like VS Code, you will observe that the variable e in the last l ...