tests/cases/compiler/nestedRecursiveArraysOrObjectsError01.ts(10,9): error TS2322: Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'Style'.
  Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'StyleArray'.
    The types returned by 'pop()' are incompatible between these types.
      Type '{ foo: string; jj: number; }[][]' is not assignable to type 'Style'.
        Type '{ foo: string; jj: number; }[][]' is not assignable to type 'StyleArray'.
          The types returned by 'pop()' are incompatible between these types.
            Type '{ foo: string; jj: number; }[]' is not assignable to type 'Style'.
              Type '{ foo: string; jj: number; }[]' is not assignable to type 'StyleArray'.
                The types returned by 'pop()' are incompatible between these types.
                  Type '{ foo: string; jj: number; }' is not assignable to type 'Style'.
                    Object literal may only specify known properties, and 'jj' does not exist in type 'Style'.


==== tests/cases/compiler/nestedRecursiveArraysOrObjectsError01.ts (1 errors) ====
    type Style = StyleBase | StyleArray;
    interface StyleArray extends Array<Style> {}
    interface StyleBase {
        foo: string;
    }
    
    const blah: Style = [
        [[{
            foo: 'asdf',
            jj: 1 // intentional error
            ~~~~~
!!! error TS2322: Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'Style'.
!!! error TS2322:   Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'StyleArray'.
!!! error TS2322:     The types returned by 'pop()' are incompatible between these types.
!!! error TS2322:       Type '{ foo: string; jj: number; }[][]' is not assignable to type 'Style'.
!!! error TS2322:         Type '{ foo: string; jj: number; }[][]' is not assignable to type 'StyleArray'.
!!! error TS2322:           The types returned by 'pop()' are incompatible between these types.
!!! error TS2322:             Type '{ foo: string; jj: number; }[]' is not assignable to type 'Style'.
!!! error TS2322:               Type '{ foo: string; jj: number; }[]' is not assignable to type 'StyleArray'.
!!! error TS2322:                 The types returned by 'pop()' are incompatible between these types.
!!! error TS2322:                   Type '{ foo: string; jj: number; }' is not assignable to type 'Style'.
!!! error TS2322:                     Object literal may only specify known properties, and 'jj' does not exist in type 'Style'.
        }]]
    ];
    
    