=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithEnumType.ts === // ! operator on enum type enum ENUM { A, B, C }; >ENUM : ENUM >A : ENUM >B : ENUM >C : ENUM enum ENUM1 { }; >ENUM1 : ENUM1 // enum type var var ResultIsBoolean1 = !ENUM; >ResultIsBoolean1 : boolean >!ENUM : boolean >ENUM : typeof ENUM // enum type expressions var ResultIsBoolean2 = !ENUM["B"]; >ResultIsBoolean2 : boolean >!ENUM["B"] : boolean >ENUM["B"] : ENUM >ENUM : typeof ENUM >"B" : string var ResultIsBoolean3 = !(ENUM.B + ENUM["C"]); >ResultIsBoolean3 : boolean >!(ENUM.B + ENUM["C"]) : boolean >(ENUM.B + ENUM["C"]) : number >ENUM.B + ENUM["C"] : number >ENUM.B : ENUM >ENUM : typeof ENUM >B : ENUM >ENUM["C"] : ENUM >ENUM : typeof ENUM >"C" : string // multiple ! operators var ResultIsBoolean4 = !!ENUM; >ResultIsBoolean4 : boolean >!!ENUM : boolean >!ENUM : boolean >ENUM : typeof ENUM var ResultIsBoolean5 = !!!(ENUM["B"] + ENUM.C); >ResultIsBoolean5 : boolean >!!!(ENUM["B"] + ENUM.C) : boolean >!!(ENUM["B"] + ENUM.C) : boolean >!(ENUM["B"] + ENUM.C) : boolean >(ENUM["B"] + ENUM.C) : number >ENUM["B"] + ENUM.C : number >ENUM["B"] : ENUM >ENUM : typeof ENUM >"B" : string >ENUM.C : ENUM >ENUM : typeof ENUM >C : ENUM // miss assignment operators !ENUM; >!ENUM : boolean >ENUM : typeof ENUM !ENUM1; >!ENUM1 : boolean >ENUM1 : typeof ENUM1 !ENUM.B; >!ENUM.B : boolean >ENUM.B : ENUM >ENUM : typeof ENUM >B : ENUM !ENUM, ENUM1; >!ENUM, ENUM1 : typeof ENUM1 >!ENUM : boolean >ENUM : typeof ENUM >ENUM1 : typeof ENUM1