74 lines
1.5 KiB
Text
74 lines
1.5 KiB
Text
=== 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[1];
|
|
>ResultIsBoolean2 : boolean
|
|
>!ENUM[1] : boolean
|
|
>ENUM[1] : string
|
|
>ENUM : typeof ENUM
|
|
|
|
var ResultIsBoolean3 = !(ENUM[1] + ENUM[2]);
|
|
>ResultIsBoolean3 : boolean
|
|
>!(ENUM[1] + ENUM[2]) : boolean
|
|
>(ENUM[1] + ENUM[2]) : string
|
|
>ENUM[1] + ENUM[2] : string
|
|
>ENUM[1] : string
|
|
>ENUM : typeof ENUM
|
|
>ENUM[2] : string
|
|
>ENUM : typeof ENUM
|
|
|
|
// multiple ! operators
|
|
var ResultIsBoolean4 = !!ENUM;
|
|
>ResultIsBoolean4 : boolean
|
|
>!!ENUM : boolean
|
|
>!ENUM : boolean
|
|
>ENUM : typeof ENUM
|
|
|
|
var ResultIsBoolean5 = !!!(ENUM[1] + ENUM[2]);
|
|
>ResultIsBoolean5 : boolean
|
|
>!!!(ENUM[1] + ENUM[2]) : boolean
|
|
>!!(ENUM[1] + ENUM[2]) : boolean
|
|
>!(ENUM[1] + ENUM[2]) : boolean
|
|
>(ENUM[1] + ENUM[2]) : string
|
|
>ENUM[1] + ENUM[2] : string
|
|
>ENUM[1] : string
|
|
>ENUM : typeof ENUM
|
|
>ENUM[2] : string
|
|
>ENUM : typeof ENUM
|
|
|
|
// miss assignment operators
|
|
!ENUM;
|
|
>!ENUM : boolean
|
|
>ENUM : typeof ENUM
|
|
|
|
!ENUM1;
|
|
>!ENUM1 : boolean
|
|
>ENUM1 : typeof ENUM1
|
|
|
|
!ENUM[1];
|
|
>!ENUM[1] : boolean
|
|
>ENUM[1] : string
|
|
>ENUM : typeof ENUM
|
|
|
|
!ENUM, ENUM1;
|
|
>!ENUM, ENUM1 : typeof ENUM1
|
|
>!ENUM : boolean
|
|
>ENUM : typeof ENUM
|
|
>ENUM1 : typeof ENUM1
|
|
|