Skip to content

Instantly share code, notes, and snippets.

@psulek
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save psulek/9253129 to your computer and use it in GitHub Desktop.

Select an option

Save psulek/9253129 to your computer and use it in GitHub Desktop.

Revisions

  1. psulek renamed this gist Feb 27, 2014. 1 changed file with 0 additions and 0 deletions.
  2. psulek revised this gist Feb 27, 2014. 2 changed files with 0 additions and 10 deletions.
    File renamed without changes.
    10 changes: 0 additions & 10 deletions jsbin.pabim.html
    Original file line number Diff line number Diff line change
    @@ -1,10 +0,0 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    </head>
    <body>

    </body>
    </html>
  3. psulek created this gist Feb 27, 2014.
    10 changes: 10 additions & 0 deletions jsbin.pabim.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    </head>
    <body>

    </body>
    </html>
    48 changes: 48 additions & 0 deletions jsbin.pabim.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,48 @@
    var States;
    (function (States) {
    States[States["New"] = 1] = "New";
    States[States["Active"] = 2] = "Active";
    States[States["Disabled"] = 3] = "Disabled";
    })(States || (States = {}));

    Object.prototype.enumEqual = function(enumType, enumItem) {
    debugger;
    var isNum = function(v) { return !isNaN(parseInt(v)); };
    var enumValueToCompare = enumItem;

    var thisIsNumber = isNum(this);

    if (thisIsNumber)
    {
    if (!isNum(enumItem)) // enumItem is NOT number
    enumValueToCompare = enumType[enumItem];
    }
    else{ // this is NOT number
    if (isNum(enumItem)) { // enumItem IS number
    var enumMember = enumType[enumItem];
    if (!isNum(enumMember)) // enumMember is NOT number
    enumValueToCompare = enumMember;
    }
    else {
    // do nothing (same as default: enumValueToCompare = enumItem)
    }
    }

    return this == enumValueToCompare;
    };

    var result = '';
    result += "Active".enumEqual(States, States[States.Active]) + ' | ';
    result += "Active".enumEqual(States, States.Active) + ' | ';
    result += "Active".enumEqual(States, 2) + ' | ';
    result += "Active".enumEqual(States, "Active") + ' | ';

    result += States.Active.enumEqual(States, "Active") + ' | ';

    var num = 2;
    result += num.enumEqual(States, States[States.Active]) + ' | ';
    result += num.enumEqual(States, States.Active) + ' | ';
    result += num.enumEqual(States, 2) + ' | ';
    result += num.enumEqual(States, "Active") + ' | ';

    alert(result);