2

I'm trying to create a TS User class with angular. I declared my attributes as shown in the code below, but I'm getting this error.

An argument for 'id' was not provided.

export class User {

   private  id: number;
   private  etabName: string;
 

  constructor(id: number, etabName: string, ) {
    this.id = id;
    this.etabName = etabName;
   
  }

  get _id(): number {
    return this. id;
  }

  set _id(value: number) {
    this. id = value;
  }



}

3 Answers 3

5

Original Answer

The issue occurs when you try to instantiate the class without passing arguments, as you did not specify arguments will be optional.

Make arguments optional like this

export class User {
  ... 

  constructor(id?: number, etabName?: string, ) {
    this.id = id || 0; //Specify default value
    this.etabName = etabName || ''; //Specify default value
   
  }
  ...
}

then you can instantiate class without arguments

const user = new User();//works

Update

You can write it even better with this syntax below, Typescript will take care of creating properties and assigning default values to it.

class User {
  constructor(private id: number = 0, private etabName: string = '') {
  }

   ...setters and getters omitted for readability
}

The above typescript will be converted to below javascript

class User {
    constructor(id = 0, etabName = '') {
        this.id = id;
        this.etabName = etabName;
    }
   ...setters and getters omitted for readability
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thaaaank youuuu <3
0

Remove the extra space of this. id = value;. Change it to this.id = value;.

Comments

0

I think you need to provide move Information

export class User {

   private  id: number;
   private  etabName: string;
 

  constructor(id: number, etabName: string) {
    this.id = id;
    this.etabName = etabName;
   
  }

  get _id(): number {
    return this.id;
  }

  set _id(value: number) {
    this.id = value;
  }



}

1 Comment

In what way is this different then the question asked?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.