Anomaly on exit from counters in typescript

Can someone explain the output I get from the code below?

enum days {sun = 1, mon = 0, tues};

console.log (days [1]); // returns tues // the expected output is mon
console.log (days [0]); // returns mon // the expected result is sun

Also, please explain how can I print the sun in this case? This scenario puzzles me. Ask you guys to provide valid explanations only after you have executed the code and looked at the output.

+4
source share
2 answers

This typescript:

enum days { sun = 1, mon = 0, tues };

compiles to this javascript:

var days;
(function (days) {
    days[days["sun"] = 1] = "sun";
    days[days["mon"] = 0] = "mon";
    days[days["tues"] = 1] = "tues";
})(days || (days = {}));
;

This first part:days[days["sun"] = 1] = "sun";

days["sun"] = 1, :

  • , days.sun 1
  • , "" = > 1. , days[1] "".

: days[days["mon"] = 0] = "mon";

  • , days.mon 0
  • , "mon" = > 0. , days[0] "mon".

: days[days["tues"] = 1] = "tues";

days["tues"] = 1,

  • , days.tues 1
  • , "tues" = > 1

, days[1] "tues"

+2

, , . undefined +1 .

, 1. Typescript/javascript, , .

:

enum days{
sun = 1,
mon = 0,
tues
}

VS ( , )

enum days{
Sun = 0,
Mon,
Tue,
Wed,
Thu,
Fri,
Sat
}

(https://www.typescriptlang.org/docs/handbook/enums.html)

, . . rule . 0

-1

Source: https://habr.com/ru/post/1680929/


All Articles