Typescript conditions

1

I'm trying to make a if in typescript but it's simply ignored and never goes into condition.

My typescript code:

import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';

@Component({
  selector: 'page-jogomemoria',
  templateUrl: 'jogomemoria.html',
})
export class JogomemoriaPage {

  constructor(public navCtrl: NavController, public navParams: NavParams) {}


  vira1() {
    document.getElementById("virada0").style.zIndex = "999";
    verificaViradasCima++;
  }


  if (verificaViradasCima = 2) {
    alert("Voce clicou duas vezes");
  }
}
var verificaViradasCima = 0;

Why does this happen?

    
asked by anonymous 15.10.2017 / 18:28

3 answers

1

You should define the variables in the constructor method, see this example:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: '<h1>Olá {{name}}</h1><button (click)="exeDecrementar()">Decrementar</button>{{verificaViradasCima}}<button (click)="exeIncrementar()">Incrementar</button>'
})
export class AppComponent {
    // Lembrando que isso é apenas um exemplo,
    // logo você deve alterar conforme sua necessidade
    constructor() {
        // Declara as variáveis.
        this.name = "Lone Tonberry";
        this.verificaViradasCima = 0;
    }

    exeDecrementar() {        
        // Se for maior que zero faz decremento.
        if (this.verificaViradasCima > 0) {
            this.verificaViradasCima--;
        }
    }

    exeIncrementar() {
        // Se for igual a 2 mostra o alerta.
        if (this.verificaViradasCima == 2) {
            alert("Voce clicou duas vezes");
        } else {
            // Se não for faz incremento.
            this.verificaViradasCima++;
        }
    }
}
  

You can see it working Plunker

    
15.10.2017 / 22:29
1

Missed a = ...

  • Use = for assignment.
  • Use == or === for comparison.
15.10.2017 / 19:45
0

In TypeScript you can perform an assignment during a comparison and this can create some confusion (Use a single equal sign). In the ECMAScript specification where JavaScript and TypeScript are based, you must use two equal signs to compare if the values of two variables are equivalent and use three signals to compare if they are the same.

// O resultado é true
(1 == "1");
(1 == true);
("00.00" == 0)
(null == undefined)

// O resultado é falso
(1 === "1")
("0" === 0)
(false === 0)

What it does behind basically is to first try to turn the two values compared in number, it seems kind of bizarre, but it's life.

    
01.06.2018 / 20:42