Отсутствует повторяющийся идентификатор Typescript - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь выполнить некоторые операторы if / else в программе TypeScript на разрабатываемой мной веб-странице Angular. Вот воспроизводимый случай:

export class AppComponent {
  x: number = 0;
  output: number = 0;

  if (this.x < 0.5){
    this.output = 1;
  }
  else if ((this.x >= 0.5) && (this.x < 1.0)){
    this.output = 2;
  }
  else {
    this.output = 3;
  }
}

Мне кажется, это соответствует руководствам, которые я читал по синтаксису TypeScript, но, очевидно, что-то не так.

В редакторе кода Visual Studio, он говорит:

  • Повторяющийся идентификатор '(Отсутствует)'. ts (2300)
  • Ожидаемый идентификатор.ts (1003)
  • Параметр '(Отсутствует)' неявно имеет тип 'любой', но лучший тип может быть выведен из usage.ts (7044)

И, когда я go запускаю код, консоль отладки сообщает:

[WDS] Errors while compiling. Reload prevented.
(webpack)-dev-server/client:162
app.component.ts(10,11): error TS1005: ',' expected.
app.component.ts(10,22): error TS1005: ',' expected.
app.component.ts(10,24): error TS1003: Identifier expected.
app.component.ts(13,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Ваш код не находится в функции.

Не уверен, чего вы пытаетесь достичь.

Например, вы можете поместить свой код в функцию конструктора:

export class AppComponent {
  x = 0; // note that the type is inferred therefore the type declaration is not necessary
  output = 0;

  constructor() {
    if (this.x < 0.5){
      this.output = 1;
    }
    else if ((this.x >= 0.5) && (this.x < 1.0)){
      this.output = 2;
    }
    else {
      this.output = 3;
    }
  }
}
1 голос
/ 04 августа 2020

Вы не можете просто бросить несколько операторов в середине класса и ожидать, что они сработают. Вы должны создать методы класса или добавить операторы в конструктор класса или в angular хуки жизненного цикла.

IE

constructor() {
  if (this.x < 0.5){
    this.output = 1;
  }
  else if ((this.x >= 0.5) && (this.x < 1.0)){
    this.output = 2;
  }
  else {
    this.output = 3;
  }
} 

или myFunct () {... code} и затем вы вызываете this.myFunct () откуда-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...