%dw 2.0
type ComplexObject = {a: Number, b: Boolean}
type IntersectionObject = {a: Number} & {b: Boolean}
---
{
    a: "test" as String | Number,
    b: "123" as String & Number,
//    c: {a: "123", b: "true"} as ComplexObject,
    d: "123" as  Number & String,
    e: 123 as Any,
//    f: {a: "123", b: "true"} as IntersectionObject,

    a1: typeOf("test" as String | Number),
    b1: typeOf("123" as String & Number),
//    c1: typeOf({a: "123", b: "true"} as ComplexObject),
    d1: typeOf("123" as  Number & String),
    e1: typeOf(123 as Any),
//    f1: typeOf({a: "123", b: "true"} as IntersectionObject),


}