Adapting inherited functions in typescript

I am looking to customize the error message in my RunTimeError class by overriding the asString function, as I need it to be different from the one in my generic Error class

class Error {
    errorName: string;
    details: string;
    posStart: Position;
    posEnd: Position;

    constructor({errorName, details, posStart, posEnd}: ErrorTypes) {
        this.errorName = errorName
        this.details = details
        this.posStart = posStart
        this.posEnd = posEnd
    }

    asString() {
        let result: string = `${this.errorName} on line ${this.posStart.ln+1}: ${this.details}`
        return result
    }
}
class RunTimeError extends Error {
    context: any

    constructor({details, posStart, posEnd, context}: SubErrorTypes) {
        super({errorName:"Runtime Error", details:details, posStart:posStart, posEnd:posEnd})
        this.context = context
    }

    //change contents of asString
}

Answer №1

Inject a property into the universal method called asString

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

Filtering data in Angular from an HTML source

Looking to filter a simple list I have. For example: <div *ngFor="let x of data"></div> Example data: data = [ { "img" : "assets/img/photos/05.jpg", "title" : "Denim Jeans", "overview": "today" ...

Utilizing PipeTransform in Angular 2/4 to Filter Table Data

I have implemented an angular2-table example and added a pipe for filtering the table based on name when selecting the "input radio" Here is my custom pipe filter : import * as _ from "lodash"; import {Pipe, PipeTransform} from "@angular/core"; @Pipe({ ...

Are Typescript generics that use "extends object" unnecessary? How should this be approached for best practices?

In my observations, using the <P extends object> generic in JavaScript is often deemed pointless since virtually everything in the language is an object. Most literals behave like objects with methods such as .toString, and strings are objects with p ...

An instance of an abstract class in DI, using Angular version 5

I have multiple components that require three services to be injected simultaneously with the same instance. After that, I need to create a new instance of my class for injecting the services repeatedly. My initial idea was to design an abstract class and ...

Contrasting @Input with Dependency Injection in Angular 10

Is there a way to pass values from a parent component to a child component without using the @Input decorator? I'm thinking about creating an instance of the Parent class in the constructor (Dependency Injection) and then accessing the variable value ...

RouterModule is a crucial external component that is essential for integrating

If I have a very simple component that is part of an Angular component library, it might look like this: mycomponent.module.html <div> <a routerLink="/"> </div> mycomponent.component.ts import { Component, OnInit, Input } from &a ...

Step-by-Step Guide on Incorporating leaflet-control-geocoder into Angular 12.x

After successfully integrating Leaflet into Angular 12 using the following commands: npm install leaflet npm install @asymmetrik/ngx-leaflet npm install --save-dev @types/leaflet I made sure to include the styles: ./node_modules/leaflet/dist/leaflet.css i ...

Error: Invalid connection string for ELF Lambda detected

Having an issue with a lambda function that connects to a remote MongoDB on an EC2 instance using TypeScript. While I can connect to the database locally, there is an ELF error when running in lambda. It seems to be related to mismatched binaries of npm pa ...

Sort columns in a MUI datatable

I am facing an issue with sorting in a column that represents an object. Although I can display the desired value, the sorting functionality does not seem to work for that particular column. Here is an example to provide better clarity: const [data, set ...

Here are some tips for resolving the error message "useActionData must be utilized within a data router" in the Remix framework

`export default function Login() { const isSubmitting = useIsSubmitting("loginForm"); const response: any = useActionData(); if (response && response.status != 200) { toast.error(response.error, { id: response.error, }); } return ...

Experience feelings of bewilderment when encountering TypeScript and Angular as you navigate through the

Exploring Angular and TypeScript for an Ionic project, I am working on a simple functionality. A button click changes the text displayed, followed by another change after a short delay. I'm facing confusion around why "this.text" does not work as exp ...

Angular 4 - custom validator function not properly defined

I am currently developing an application that includes a FormComponent. Within this component, I am utilizing the reactive forms module from Angular core to create a custom validator. When calling a function from within another function using 'this&ap ...

What is the reasoning behind TypeScript including both `void` and `undefined` in its type system?

When working with TypeScript, it is possible to specify that a function returns void: function fn1(): void { // OK } function fn2(): void { // Error return 3; } Additionally, you have the option to annotate a function as returning undefined: func ...

Troubleshooting the issue with integrating a user-defined Cordova plugin in Ionic 2 using TypeScript

I have developed a custom Cordova plugin and I am trying to integrate it with an Ionic 2 project that is using TypeScript and Angular 2. While I have successfully added the plugin to the Ionic 2 project, I am facing issues when trying to call methods defin ...

How to efficiently update a child component in React using UseState and establish a connection back to the parent component

I am currently working on developing a prototype for a master/detail scenario in React and Material-UI. The task involves creating a basic list of objects with the ability to edit and save an item using a dialog. While I have successfully updated the visit ...

Breaking down nested arrays in typescript

After receiving a response from the service, the data included the following: "rows": [ [ "stravi/aa", "202001", "59", "51", "2558.98", "0.5358894453719162", "1.9204668112983725", "140", "2.346630 ...

determine the total number of months within a specific duration

I need help with calculating the number of months between two dates, inclusive of both extremes. I have attempted the following code: var duration : moment.Duration; const contractStartMoment = moment(contractStart); //contractStart=01.05.2021 const ...

Angular AOT and Typescript mapping tutorial

I have encountered a problem with using TypeScript map in my Angular application. When I run the application using 'ng serve', everything works fine. However, if I use 'ng serve --aot', the maps are not functioning as expected. Despite ...

The use of BaseJQueryEventObject and JQueryEventObject is no longer recommended. What is the alternative to replace them?

Transitioning from jQuery v2 to jQuery v3, the interfaces such as BaseJQueryEventObject in type definitions are now deprecated. What should be used as a replacement in the code? For instance, when working with angularjs, functions may look like this: pu ...

What is the recommended method for deleting sequelize.connectionManager.getConnection according to the Sequelize documentation?

I am currently developing an AWS Lambda function using Typescript that interacts with a database through Sequelize. According to the official Sequelize documentation, the configuration for Sequelize should be as follows: let sequelize = null; async func ...