# Table, Record, Map, Arraybetween casts

  • table as the parent type of the above three types, the Map<?> type can be used to initialize the record type

Both types are exactly the same

==================     ==============================================  ======================
    Left-hand type             Right-hand type                        Acceptable

    table                          record                                   true
    table                          Map<T>                                   true
    table                          Array<T>                                 true
    record                         table                                    true
    record                         Map<T>                                   true
    record                         Array<T>                                 false
    record                         Other record                          false
    Map<T1>                        table                                    true
    Map<T1>                        record                                   false
    Map<T1>                        Empty Map<object>                             true
    Map<T1>                        Map<T2 where T2 extends T1>              true
    Map<T1>                        Map<T2 where T1 extends T2>              false
    Map<T1>                        Array<?>                                 false
    Array<T1>                      table                                    true
    Array<T1>                      Empty Map<object>                            true
    Array<T1>                      record                                   false
    Array<T1>                      Array<T2 where T2 extends T1>            true
    Array<T1>                      Array<T2 where T1 extends T2>            false
    Array<T1>                      Map<?>                                   false
==================     ==============================================  ======================